Drivers: hv
v2 cover Drivers: hv
Add a basic balloon driver to take advantage of the dynamic memory management functionality supported on Windows hosts. Windows requires the guests to support both memory hot add as well as ballooning. In this patch we are adding the basic balloon driver. Memory hot add will be added in a subsequent patch and this requires some changes yet to be made on the host side.
The policy engine on Windows hosts needs the guest to post memory status periodically and it looks like committed_as is what it is expecting. Since vm_committed_as is not currently an exported symbol, this patch set also exports this symbol.
In V1 of this patch set, I had addressed comments from Greg KH, Rusty Russell and Andrew Morton:
1) Cleaned up the copyright notice in hv_balloon.c
2) Fixed a typo in Kconfig help string
3) Exported the needed symbol as a GPL symbol
4) Changed the hot_add module parameter to be a boolean variable
5) Got rid of the code that manipulated totalram_pages
6) Cleaned up the allocation flags.
In this version, thanks to David Rientjes <[email protected]>, I have defined an API for accessing the guest committed memory and this API has been used in the Hyper-V balloon driver. The patch that exports the API for accessing guest committed memory has been accepted by Andrew Morton.
K. Y. Srinivasan (1):
Drivers: hv: Add Hyper-V balloon driver
drivers/hv/Kconfig | 6 + drivers/hv/Makefile | 1 + drivers/hv/hv_balloon.c | 1041 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1048 insertions(+), 0 deletions(-) create mode 100644 drivers/hv/hv_balloon.c
Signature · 1 line
1.7.4.1
PATCH v2 1/1 Drivers: hv: Add Hyper-V balloon driver
Add the basic balloon driver. Windows hosts dynamically manage the guest memory allocation via a combination memory hot add and ballooning. Memory hot add is used to grow the guest memory upto the maximum memory that can be allocatted to the guest. Ballooning is used to both shrink as well as expand up to the max memory. Supporting hot add needs additional support from the host. We will support hot add when this support is available. For now, by setting the VM startup memory to the VM max memory, we can use ballooning alone to dynamically manage memory allocation amongst competing guests on a given host.
--- drivers/hv/Kconfig | 6 + drivers/hv/Makefile | 1 + drivers/hv/hv_balloon.c | 1041 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1048 insertions(+), 0 deletions(-) create mode 100644 drivers/hv/hv_balloon.c
drivers/hv/Kconfig +6 -0
@@ -13,4 +13,10 @@ config HYPERV_UTILS help Select this option to enable the Hyper-V Utilities. +config HYPERV_BALLOON + tristate "Microsoft Hyper-V Balloon driver" + depends on HYPERV + help + Select this option to enable Hyper-V Balloon driver. + endmenu
drivers/hv/Makefile +1 -0
@@ -1,5 +1,6 @@ obj-$(CONFIG_HYPERV) += hv_vmbus.o obj-$(CONFIG_HYPERV_UTILS) += hv_utils.o +obj-$(CONFIG_HYPERV_BALLOON) += hv_balloon.o hv_vmbus-y := vmbus_drv.o \ hv.o connection.o channel.o \
drivers/hv/hv_balloon.c new file +1041 -0
1,041 lines not on this page · raw message
Signature · 1 line
1.7.4.1