xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] tools/libxl: modify static-max in xenstore when setting maxmem
@ 2017-01-18 18:25 Juergen Gross
  2017-01-19 11:51 ` Wei Liu
  0 siblings, 1 reply; 4+ messages in thread
From: Juergen Gross @ 2017-01-18 18:25 UTC (permalink / raw)
  To: xen-devel; +Cc: Juergen Gross, wei.liu2, ian.jackson

xl mem-max is setting the hypervisor memory limit of a domain, but not
the memory/static-max value in Xenstore. This prohibits setting the
memory size above the old maximum size.

Set the new maximum value in Xenstore.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/libxl/libxl.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 0622311..f59ec42 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -4077,6 +4077,9 @@ int libxl_domain_setmaxmem(libxl_ctx *ctx, uint32_t domid, uint64_t max_memkb)
         goto out;
     }
 
+    libxl__xs_printf(gc, XBT_NULL, GCSPRINTF("%s/memory/static-max", dompath),
+                     "%"PRIu64, max_memkb);
+
     rc = 0;
 out:
     libxl_domain_config_dispose(&d_config);
-- 
2.10.2


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] tools/libxl: modify static-max in xenstore when setting maxmem
  2017-01-18 18:25 [PATCH] tools/libxl: modify static-max in xenstore when setting maxmem Juergen Gross
@ 2017-01-19 11:51 ` Wei Liu
  2017-01-19 12:51   ` Juergen Gross
  0 siblings, 1 reply; 4+ messages in thread
From: Wei Liu @ 2017-01-19 11:51 UTC (permalink / raw)
  To: Juergen Gross; +Cc: xen-devel, ian.jackson, wei.liu2

On Wed, Jan 18, 2017 at 07:25:57PM +0100, Juergen Gross wrote:
> xl mem-max is setting the hypervisor memory limit of a domain, but not
> the memory/static-max value in Xenstore. This prohibits setting the
> memory size above the old maximum size.
> 
> Set the new maximum value in Xenstore.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

This looks sensible. But memory accounting is a thorny area.

Could you try to do local migration test for both PV and HVM guests with
this patch applied (with or w/out changing maxmem)?

> ---
>  tools/libxl/libxl.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index 0622311..f59ec42 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -4077,6 +4077,9 @@ int libxl_domain_setmaxmem(libxl_ctx *ctx, uint32_t domid, uint64_t max_memkb)
>          goto out;
>      }
>  
> +    libxl__xs_printf(gc, XBT_NULL, GCSPRINTF("%s/memory/static-max", dompath),
> +                     "%"PRIu64, max_memkb);
> +
>      rc = 0;
>  out:
>      libxl_domain_config_dispose(&d_config);
> -- 
> 2.10.2
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] tools/libxl: modify static-max in xenstore when setting maxmem
  2017-01-19 11:51 ` Wei Liu
@ 2017-01-19 12:51   ` Juergen Gross
  2017-01-19 15:17     ` Juergen Gross
  0 siblings, 1 reply; 4+ messages in thread
From: Juergen Gross @ 2017-01-19 12:51 UTC (permalink / raw)
  To: Wei Liu; +Cc: xen-devel, ian.jackson

On 19/01/17 12:51, Wei Liu wrote:
> On Wed, Jan 18, 2017 at 07:25:57PM +0100, Juergen Gross wrote:
>> xl mem-max is setting the hypervisor memory limit of a domain, but not
>> the memory/static-max value in Xenstore. This prohibits setting the
>> memory size above the old maximum size.
>>
>> Set the new maximum value in Xenstore.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
> 
> This looks sensible. But memory accounting is a thorny area.
> 
> Could you try to do local migration test for both PV and HVM guests with
> this patch applied (with or w/out changing maxmem)?

PV: works (both with or without maxmem changed)
HVM: works only with unchanged maxmem

HVM with changed maxmem will trigger an assertion in qemu for the
incoming domain:

xen_ram_alloc: do not alloc 37c00000 bytes of ram at 0 when runstate is
INMIGRATE
xen_ram_alloc: do not alloc 800000 bytes of ram at 37c00000 when
runstate is INMIGRATE
qemu-system-i386:
/home/gross/xen/tools/qemu-xen-dir/include/exec/ram_addr.h:49:
ramblock_ptr: Assertion `offset_in_ramblock(block, offset)' failed.

Without my patch this is working, but the migrated domain has the old
maxmem in hypervisor data as can be seen via "xl debug-keys q".


Juergen

> 
>> ---
>>  tools/libxl/libxl.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
>> index 0622311..f59ec42 100644
>> --- a/tools/libxl/libxl.c
>> +++ b/tools/libxl/libxl.c
>> @@ -4077,6 +4077,9 @@ int libxl_domain_setmaxmem(libxl_ctx *ctx, uint32_t domid, uint64_t max_memkb)
>>          goto out;
>>      }
>>  
>> +    libxl__xs_printf(gc, XBT_NULL, GCSPRINTF("%s/memory/static-max", dompath),
>> +                     "%"PRIu64, max_memkb);
>> +
>>      rc = 0;
>>  out:
>>      libxl_domain_config_dispose(&d_config);
>> -- 
>> 2.10.2
>>
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] tools/libxl: modify static-max in xenstore when setting maxmem
  2017-01-19 12:51   ` Juergen Gross
@ 2017-01-19 15:17     ` Juergen Gross
  0 siblings, 0 replies; 4+ messages in thread
From: Juergen Gross @ 2017-01-19 15:17 UTC (permalink / raw)
  To: Wei Liu; +Cc: xen-devel, ian.jackson

On 19/01/17 13:51, Juergen Gross wrote:
> On 19/01/17 12:51, Wei Liu wrote:
>> On Wed, Jan 18, 2017 at 07:25:57PM +0100, Juergen Gross wrote:
>>> xl mem-max is setting the hypervisor memory limit of a domain, but not
>>> the memory/static-max value in Xenstore. This prohibits setting the
>>> memory size above the old maximum size.
>>>
>>> Set the new maximum value in Xenstore.
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>
>> This looks sensible. But memory accounting is a thorny area.
>>
>> Could you try to do local migration test for both PV and HVM guests with
>> this patch applied (with or w/out changing maxmem)?
> 
> PV: works (both with or without maxmem changed)
> HVM: works only with unchanged maxmem
> 
> HVM with changed maxmem will trigger an assertion in qemu for the
> incoming domain:
> 
> xen_ram_alloc: do not alloc 37c00000 bytes of ram at 0 when runstate is
> INMIGRATE
> xen_ram_alloc: do not alloc 800000 bytes of ram at 37c00000 when
> runstate is INMIGRATE
> qemu-system-i386:
> /home/gross/xen/tools/qemu-xen-dir/include/exec/ram_addr.h:49:
> ramblock_ptr: Assertion `offset_in_ramblock(block, offset)' failed.
> 
> Without my patch this is working, but the migrated domain has the old
> maxmem in hypervisor data as can be seen via "xl debug-keys q".

This is all very strange:

Starting a HVM domain with maxmem=1124 and memory=1024 will place the
correct size in Xenstore, but max_pages in the hypervisor is showing
1025 MB only.

Can anybody tell me how the sizes should be set?


Juergen

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-01-19 15:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-18 18:25 [PATCH] tools/libxl: modify static-max in xenstore when setting maxmem Juergen Gross
2017-01-19 11:51 ` Wei Liu
2017-01-19 12:51   ` Juergen Gross
2017-01-19 15:17     ` Juergen Gross

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).