tools/libs/light: update xenstore entry when setting max domain memory

libxl_domain_setmaxmem() called during "xl mem-max" should update the
domain's memory/static-max Xenstore node, as otherwise "xl mem-set"
won't be able to set the memory size to the new maximum.

Adjust the related comments and documentation accordingly.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
This commit is contained in:
Juergen Gross authored and Jan Beulich committed 2022-05-20 12:18:50 +02:00
1 parent c038304b46
commit 77bbea1baf
2 files changed
+15 -8

No files matched your search

+5 -6
View File
@@ -442,15 +442,14 @@ allocate.
The default unit is kiB. Add 't' for TiB, 'g' for GiB, 'm' for
MiB, 'k' for kiB, and 'b' for bytes (e.g., `2048m` for 2048 MiB).
NB that users normally shouldn't need this command; B<xl mem-set> will
set this as appropriate automatically.
I<mem> can't be set lower than the current memory target for
I<domain-id>. It is allowed to be higher than the configured maximum
memory size of the domain (B<maxmem> parameter in the domain's
configuration). Note however that the initial B<maxmem> value is still
used as an upper limit for B<xl mem-set>. Also note that calling B<xl
mem-set> will reset this value.
configuration).
Setting the maximum memory size above the configured maximum memory size
will require special guest support (memory hotplug) in order to be usable
by the guest.
The domain will not receive any signal regarding the changed memory
limit.
+10 -2
View File
@@ -20,8 +20,7 @@
/*
* Set the maximum memory size of the domain in the hypervisor. There is no
* change of the current memory size involved. The specified memory size can
* even be above the configured maxmem size of the domain, but the related
* Xenstore entry memory/static-max isn't modified!
* even be above the configured maxmem size of the domain.
*/
int libxl_domain_setmaxmem(libxl_ctx *ctx, uint32_t domid, uint64_t max_memkb)
{
@@ -82,6 +81,15 @@ int libxl_domain_setmaxmem(libxl_ctx *ctx, uint32_t domid, uint64_t max_memkb)
goto out;
}
rc = libxl__xs_printf(gc, XBT_NULL,
GCSPRINTF("%s/memory/static-max", dompath),
"%"PRIu64, max_memkb);
if (rc != 0) {
LOGED(ERROR, domid, "Couldn't set %s/memory/static-max, rc=%d\n",
dompath, rc);
goto out;
}
rc = 0;
out:
libxl_domain_config_dispose(&d_config);
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.