On Wed, Jan 19, 2011 at 08:40:33PM +0100, Matthias Bolte wrote: > 2011/1/19 Eric Blake <eblake@xxxxxxxxxx>: > > 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list