* [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).