Skip to contentSkip to conversation

Drivers: hv

PATCH RESEND New K. Y. Srinivasan 1 participant 3 messages Oct 25, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

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 this version I have 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.

K. Y. Srinivasan (2):
mm: Export vm_committed_as
Drivers: hv: Add Hyper-V balloon driver

 drivers/hv/Kconfig      |    6 +
 drivers/hv/Makefile     |    1 +
 drivers/hv/hv_balloon.c | 1041 +++++++++++++++++++++++++++++++++++++++++++++++
 mm/mmap.c               |    1 +
 mm/nommu.c              |    1 +
 5 files changed, 1050 insertions(+), 0 deletions(-)
 create mode 100644 drivers/hv/hv_balloon.c
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH RESEND 1/2 mm: Export vm_committed_as

The policy engine on the host expects the guest to report the committed_as. Since this variable is not exported, export this symbol.

---
 mm/mmap.c  |    1 +
 mm/nommu.c |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)
mm/mmap.c +1 -0
index 2d94235..77a9166 100644
@@ -87,6 +87,7 @@ int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
  * other variables. It can be updated by several CPUs frequently.
  */
 struct percpu_counter vm_committed_as ____cacheline_aligned_in_smp;
+EXPORT_SYMBOL_GPL(vm_committed_as);
 
 /*
  * Check that a process has enough memory to allocate a new virtual
mm/nommu.c +1 -0
index 45131b4..55bd7a2 100644
@@ -68,6 +68,7 @@ atomic_long_t mmap_pages_allocated;
 
 EXPORT_SYMBOL(mem_map);
 EXPORT_SYMBOL(num_physpages);
+EXPORT_SYMBOL_GPL(vm_committed_as);
 
 /* list of mapped, potentially shareable regions */
 static struct kmem_cache *vm_region_jar;
Signature · 1 line
1.7.4.1
#2 lore raw

PATCH RESEND 2/2 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
index 70f5dde..b38ef6d 100644
@@ -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
index a23938b..e6abfa0 100644
@@ -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