All,
My recent patch to remove qemudDomainSetMaxMem() revealed some surprising
(to me) behavior of "virsh setmaxmem". In particular, if you run setmaxmem,
and
the hypervisor doesn't support it, this fact will be reported to you. However,
if the amount you were setting for maxmem happens to be lower than
"currentMemory",
setmaxmem will silently balloon down the domain for you. This is a surprising
result exactly because virsh reports error, but did something anyway. What I
would expect is that if a hypervisor doesn't support virDomainSetMaxMem(), nothing
at all is done.
If we agree that this is behavior that needs to be fixed, I would suggest
that we move the code to do the auto-ballooning into each of the individual
drivers that *do* support virDomainSetMaxMem(). Currently that includes the
test driver, the LXC driver, and the Xen driver. This way, we maintain the
current behavior for the hypervisors that support this call, and make sure
not to do anything at all for the hypervisors that do not.
Opinions?
--
Chris Lalancette