On Tue, Mar 18, 2008 at 10:04:12AM -0400, Cole Robinson wrote:
Richard W.M. Jones wrote:
>
>> 2) Should SetMaxMem be able to be called on a running guest? This code
>> allows it, since maxmem is basically a metavalue that doesn't directly
>> affect a guest.
>>
>> 3) Should maxmem be able to be set lower than the currently allocated mem?
>> This code does not allow this. If this changed, would also need to take
>> into account how we would handle this if we can change the maxmem while
>> the guest is running. After rethinking, we probably should be able to
>> do this, but I haven't changed the code.
>
> As far as I understand what maxmem means (for Xen), this seems to be
> correct behaviour.
>
> Rich.
>
I just checked this: xm seems to explicitly reject setting maxmem lower than
current mem for a guest in any state, but going through virsh you can set
maxmem to any value on an inactive guest. But it is probably better to just
stick with the xm convention.
in practice it should be fine to change max_mem on any domain which has
no running instance, as long as the domain will go though a create to run
again, because that's at create time that some of the data is allocated
based on that maximum size. For example resizing and restoring a domain
which was previously saved to disk won't work in practice, and it's impossible
for libvirt or the hypervisor to know if a domain will be restarted with
Create() or Restore(). I think xm is being a bit too cautious there, though
I can understand their decision.
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/