[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 07/10] xen/arm: intruduce alloc_domstatic_pages





On 19/05/2021 08:52, Penny Zheng wrote:
Hi Julien

Hi Penny,


-----Original Message-----
From: Julien Grall <julien@xxxxxxx>
Sent: Tuesday, May 18, 2021 8:13 PM
To: Penny Zheng <Penny.Zheng@xxxxxxx>; Jan Beulich <jbeulich@xxxxxxxx>
Cc: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>; Wei Chen
<Wei.Chen@xxxxxxx>; nd <nd@xxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx;
sstabellini@xxxxxxxxxx
Subject: Re: [PATCH 07/10] xen/arm: intruduce alloc_domstatic_pages

Hi Penny,

On 18/05/2021 09:57, Penny Zheng wrote:
-----Original Message-----
From: Jan Beulich <jbeulich@xxxxxxxx>
Sent: Tuesday, May 18, 2021 3:35 PM
To: Penny Zheng <Penny.Zheng@xxxxxxx>
Cc: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>; Wei Chen
<Wei.Chen@xxxxxxx>; nd <nd@xxxxxxx>; xen-
devel@xxxxxxxxxxxxxxxxxxxx;
sstabellini@xxxxxxxxxx; julien@xxxxxxx
Subject: Re: [PATCH 07/10] xen/arm: intruduce alloc_domstatic_pages

On 18.05.2021 07:21, Penny Zheng wrote:
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2447,6 +2447,9 @@ int assign_pages(
       {
           ASSERT(page_get_owner(&pg[i]) == NULL);
           page_set_owner(&pg[i], d);
+        /* use page_set_reserved_owner to set its reserved domain owner.
*/
+        if ( (pg[i].count_info & PGC_reserved) )
+            page_set_reserved_owner(&pg[i], d);

Now this is puzzling: What's the point of setting two owner fields to
the same value? I also don't recall you having introduced
page_set_reserved_owner() for x86, so how is this going to build there?


Thanks for pointing out that it will fail on x86.
As for the same value, sure, I shall change it to domid_t domid to record its
reserved owner.
Only domid is enough for differentiate.
And even when domain get rebooted, struct domain may be destroyed, but
domid will stays The same.
Major user cases for domain on static allocation are referring to the
whole system are static, No runtime creation.

One may want to have static memory yet doesn't care about the domid. So I
am not in favor to restrict about the domid unless there is no other way.


The user case you bring up here is that static memory pool?

No. The use case I am talking about is an user who wants to give a specific memory region to the guest but doesn't care about which domid was allocated to the guest.


Right now, the user cases are mostly restricted to static system.
If we bring runtime allocation, `xl` here, it will add a lot more complexity.
But if the system has static behavior, the domid is also static.
I read this as the admin would have to specify the domain ID in the Device-Tree. Is that what you meant?

If so, then I don't see why we should mandate that. I would mind less if by static you mean the domid will be allocated by Xen and then not changed accross reboot.


On rebooting domain from static memory pool, it brings up more discussion, like
do we intend to give the memory back to static memory pool when rebooting,
if so, ram could be allocated from different place compared with the previous 
one.

You should have all the information in the Device-Tree to re-assign the correct regions. So why would it be allocated from a different place?

Cheers,

--
Julien Grall



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.