[libvirt] [PATCH] docs: correct setmem text plus expand setmaxmem text
Daniel P. Berrange
berrange at redhat.com
Wed Jan 19 20:04:43 UTC 2011
On Wed, Jan 19, 2011 at 08:40:33PM +0100, Matthias Bolte wrote:
> 2011/1/19 Eric Blake <eblake at redhat.com>:
> > On 01/18/2011 05:28 PM, Justin Clift wrote:
> >> This completes the man page updates required for BZ # 622534:
>
> >> +
> >> +Some hypervisors require a larger granularity than kilobytes, and requests
> >> +that are not an even multiple will either be rounded down or rejected. For
> >> +example, vSphere/ESX rejects the parameter unless the kB argument is evenly
> >> +divisible by 1024 (that is, the kB argument happens to represent megabytes).
> >> +
> >> +Note, this command only works on active guest domains. To change the memory
> >> +allocation for an inactive guest domain, use the virsh B<edit> command to
> >> +update the XML <memory> element.
> >
> > I guess this means some experimentation is in order to validate these
> > claims.
> >
>
> Actually the ESX driver is a bit inconsistent in that regard. Most
> times the code will just divide by 1024 when libvirt uses kilobytes
> but ESX needs megabytes. It even ignores the case when this results in
> 0 megabytes.
>
> The VMX handling code is stricter and rejects values that are not even
> dividable by 1024, or by 4096 in case of <memory> or by 64 in case of
> <video vram=...>. So this only affects virsh define and virsh dumpxml,
> the only two places where the ESX driver uses the VMX handling code.
>
> I wonder in which direction to go in order to unify this: being more
> strict and do "value % 1024 == 0" checks all over the place, or being
> less strict and just divide by 1024.
There was a problem reported against the storage driver thats
similar. When creating LVM volumes we just / 1024 to get KB,
but this truncates, so if an app absolutely needs a particular
min size we likely give them a volume too small. So arguably
when converting to less granular units, we should round up to
the nearest, rather than truncating or rounding down. Throwing
an error is probably a little too harsh
Daniel
More information about the libvir-list
mailing list