From: Elliot L. <el...@vm...> - 2008-05-26 18:49:57
|
On 5/26/08 3:28 AM, "Dominique Leuenberger" <Dominique.Leuenberger@TMF-Group.com> wrote: > I have a question of usefulness or uselessness of vmemctl. From the wiki, I > only get: > > vmmemctl > This is a Linux kernel module. It isn't backed by a virtual hardware device, > so it must be loaded manually. It has no dependencies, nor do any Tools > components depend on it, so it can be loaded at any time during the boot > process. Once loaded, no further action is needed. We've successfully built > vmmemctl as far back as 2.2.16, and we believe it to be generally compatible > with all newer kernels as well. > > What exactly is this driver for? Is it needed / recommended? > Of course I can just modprobe it... but I prefer actually to know what I > load. Hi Dominique, Vmmemctl implements memory ballooning. Basically this means that when the host wants to get some memory back from the guest, the host calls the balloon driver in the guest, which just allocates a chunk of guest memory and informs the host where that memory is. The virtual machine monitor can then allocate that RAM to other guests, or to the host OS. When the host is done with that memory, it will return it to the guest's pool of RAM, and tell the guest's balloon driver to free up that memory so it can be used by the guest OS again. The only way for the balloon driver to make a difference is if the host is under memory pressure (perhaps because the apps in the host want memory, or perhaps because another guest wants the memory). Memory ballooning is a great way to not only allow reclaiming memory from a guest, but also to put the guest OS under memory pressure so it will get rid of stuff that is not really needed (e.g. swapping out unused applications in the guest). http://www.usenix.org/events/osdi02/tech/waldspurger/waldspurger_html/node6. html has some details. Best, -- Elliot |