From: George Dunlap Date: Mon, 8 Apr 2019 11:09:43 +0000 (+0100) Subject: docs/xl: Clarify documentation for mem-max and mem-set X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=29f71f58a6d4337c40f2395f7e623d224e8c623b;p=people%2Froyger%2Fxen.git docs/xl: Clarify documentation for mem-max and mem-set mem-set is the primary command that users will need to use and understand. Move it first, and clarify the wording; also specify that you can't set the target higher than maxmem from the domain config. mem-max is actually a pretty useless command at the moment. Clarify that users are not expected to use it; and document all of its quirky behavior. Signed-off-by: George Dunlap Reviewed-by: Lars Kurth Acked-by: Wei Liu --- diff --git a/docs/man/xl.1.pod.in b/docs/man/xl.1.pod.in index a8dae005b1..2f7375ed0a 100644 --- a/docs/man/xl.1.pod.in +++ b/docs/man/xl.1.pod.in @@ -393,40 +393,71 @@ less utilized than a high CPU workload. Consider yourself warned. =back -=item B I I +=item B I I -Specify the maximum amount of memory the domain is able to use, appending 't' -for terabytes, 'g' for gigabytes, 'm' for megabytes, 'k' for kilobytes and 'b' -for bytes. +Set the target for the domain's balloon driver. -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 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). -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 parameter in the domain's configuration). Using B -to set the maximum memory above the initial B value will not allow the -additional memory to be used via B. The initial B value is -still used as an upper limit for B. +This must be less than the initial B parameter in the domain's +configuration. -The domain will not receive any signal regarding the changed memory limit. +Note that this operation requests the guest operating system's balloon +driver to reach the target amount of memory. The guest may fail to +reach that amount of memory for any number of reasons, including: -=item B I I +=over 4 + +=item + +The guest doesn't have a balloon driver installed + +=item + +The guest's balloon driver is buggy + +=item + +The guest's balloon driver cannot create free guest memory due to +guest memory pressure + +=item -Set the domain's used memory using the balloon driver; append 't' for -terabytes, 'g' for gigabytes, 'm' for megabytes, 'k' for kilobytes and 'b' for -bytes. +The guest's balloon driver cannot allocate memory from Xen because of +hypervisor memory pressure -Because this operation requires cooperation from the domain operating -system, there is no guarantee that it will succeed. This command will -definitely not work unless the domain has the required paravirt -driver. +=item + +The guest administrator has disabled the balloon driver + +=back B There is no good way to know in advance how small of a mem-set will make a domain unstable and cause it to crash. Be very careful when using this command on running domains. +=item B I I + +Specify the limit Xen will place on the amount of memory a guest may +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 will +set this as appropriate automatically. + +I can't be set lower than the current memory target for +I. It is allowed to be higher than the configured maximum +memory size of the domain (B parameter in the domain's +configuration). Note however that the initial B value is still +used as an upper limit for B. Also note that calling B will reset this value. + +The domain will not receive any signal regarding the changed memory +limit. + =item B [I] I I Migrate a domain to another host machine. By default B relies on ssh as a