[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] docs: clarify xl mem-max semantics
On 01/23/2017 02:49 AM, Juergen Gross wrote: The information given in the xl man page for the mem-max command is rather brief. Expand it in order to let the reader understand what it is really doing. As the related libxl function libxl_domain_setmaxmem() isn't much clearer add a comment to it explaining the desired semantics. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- V2: rewording as suggested by Jim Fehlig and Ian Jackson --- docs/man/xl.pod.1.in | 10 ++++++++++ tools/libxl/libxl.c | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/docs/man/xl.pod.1.in b/docs/man/xl.pod.1.in index 09c1faa..7caed08 100644 --- a/docs/man/xl.pod.1.in +++ b/docs/man/xl.pod.1.in @@ -401,6 +401,16 @@ for bytes. The mem-max value may not correspond to the actual memory used in the domain, as it may balloon down its memory to give more back to the OS. +The value given just sets the memory amount the domain is allowed to allocate +in the hypervisor. It can't be set lower than the current reservation, but +it is allowed to be higher than the configured maximum memory size of the +domain (B<maxmem> parameter in the domain's configuration). Using B<xl mem-max> +to set the maximum memory above the initial B<maxmem> value will not allow the +additional memory to be used via B<xl mem-set>. The initial B<maxmem> value is +still used as an upper limit for B<xl mem-set>. + +The domain is not receiving any signal regarding the changed memory limit. + =item B<mem-set> I<domain-id> I<mem> Set the domain's used memory using the balloon driver; append 't' for diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 0622311..ed59510 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -4018,6 +4018,12 @@ out: /******************************************************************************/ +/* + * Set the maximum memory size of the domain in the hypervisor. There is no + * change of the current memory size involved. The allowed memory size can s/allowed/specified/ ? Or perhaps "The value of max_memkb can even..." ? Sorry I didn't look closely at this hunk in V1. + * even be above the configured maxmem size of the domain, but the related + * Xenstore entry memory/static-max isn't modified! + */ int libxl_domain_setmaxmem(libxl_ctx *ctx, uint32_t domid, uint64_t max_memkb) { GC_INIT(ctx); I have a related question for you (or Ian, Wei, ...): What does max_pages (as seen with 'q' debug key') represent? How is it related to memory/static-max in xenstore, if at all? When a domain is running, libvirt reports maximum memory through max_memkb field of libxl_dominfo struct. max_memkb is filled with PAGE_TO_MEMKB(xcinfo->max_pages). AFAICT, xcinfo->max_pages contains the same value as max_pages from 'q' debug key, but neither of those represent the maxmem value used at domain creation. E.g. # cat test.xl | grep mem maxmem = 8192 memory = 2048 # xl create test.xl # xl debug-key q && xl dmesg | grep max_pages(XEN) nr_pages=524205 xenheap_pages=6 shared_pages=0 paged_pages=0 dirty_cpus={20,42} max_pages=524544 On this system, 524544*4096=2049M which is closer to 'memory' than 'maxmem'.I have a patch which fixes this in libvirt, but I'm having a hard time articulating why the current use of max_pages is incorrect :-). TIA for any comments you might have on that. Regards, Jim _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |