I would like to incorporate memory adding/removing into my xen pv
drivers for windows.
The idea is that the physical server might have (say) 16GB of memory,
and 10 VM’s running with 1G each. Rather than just not using the last 6G
of memory, you could ‘give’ some of it to each of the VM’s, and then
take it away if you need it later.
Under Xen, this is accomplished by physically giving each VM a maximum
amount of memory on boot but having it allocated by the kernel, which in
turn lets Xen keep it. Xen can give the memory back, in which case the
VM kernel ‘frees’ the memory back to the memory pool, or ask for more
memory, in which case the VM kernel ‘allocates’ the memory and gives the
pages back to xen.
Under Windows, my driver can’t integrate as tightly with the kernel to
ensure that the extra memory is never used by the kernel and remains the
properly of Xen. This would still work if the admin was happy for the VM
to boot up with its maximum amount of memory and relinquish some of it
shortly after boot, but leads to all sorts of problems if you try to
boot lots of VM’s simultaneously etc, so I think I need another
approach…
It looks like Windows 2003 has a ‘hot add’ ability via the BIOS and ACPI
tables, but I’m pretty sure that that ability isn’t yet available in
Xen, and would be limited to Enterprise/Datacenter editions of Windows
anyway.
Any suggestions?
Thanks
James