[libvirt] SetMaxMemory vs. SetMemory

Daniel Veillard veillard at redhat.com
Fri May 22 09:01:48 UTC 2009

On Thu, May 21, 2009 at 10:39:03PM +0200, Matthias Bolte wrote:
> 2009/5/21 Chris Lalancette <clalance at redhat.com>:
> > Well, this is because of a peculiarity with Xen PV domains.  In Xen PV guests,
> > you specify a "maxmem" and a "memory" parameter in the configuration file.  The
> > "maxmem" parameter is presented to the guest as the end of the e820 map, hence
> > the end of real memory as far as the guest is concerned (you can see that in the
> > output of dmesg from the guest).  When the balloon driver in the guest loads, it
> > will "allocate" (maxmem - memory), so that free inside the guest looks like it
> > only has 1GB.  Later on, you can balloon back up, which means that the balloon
> > driver "releases" memory back to the domain (but never above the maxmem
> > parameter, since that's what's in the e820 map for the guest).
> >
> > I would say for ESX driver, you probably want to follow the Qemu model; it's the
> > model that KVM and even Xen FV guests follow, so seems to be more common.
> >
> > I hope that helps somewhat.
> Yes, it does. So my first assumption was correct. SetMaxMemory defines
> the total amount of memory that could be available for the guest and
> SetMemory defines the actual amount of memory that is available for
> the guest to use.

  Yup, with SetMemory being a best-effort kind of contract, while
MaxMemory is a hardcoded value for the life of a running domain,


Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/

More information about the libvir-list mailing list