diff options
author | K. Y. Srinivasan <kys@microsoft.com> | 2012-11-15 17:34:42 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-11-15 18:41:22 -0500 |
commit | 997071bcb34005f42e0fe5bc7930e895b070f251 (patch) | |
tree | 7cc8056370e1c77314fdf0b3fd72bcc69743f24c /mm/nommu.c | |
parent | d892de8d3fb1e807de561289cfb1fed42950440a (diff) |
mm: export a function to get vm committed memory
It will be useful to be able to access global memory commitment from
device drivers. On the Hyper-V platform, the host has a policy engine to
balance the available physical memory amongst all competing virtual
machines hosted on a given node. This policy engine is driven by a number
of metrics including the memory commitment reported by the guests. The
balloon driver for Linux on Hyper-V will use this function to retrieve
guest memory commitment. This function is also used in Xen self
ballooning code.
[akpm@linux-foundation.org: coding-style tweak]
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Acked-by: David Rientjes <rientjes@google.com>
Acked-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm/nommu.c')
-rw-r--r-- | mm/nommu.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/mm/nommu.c b/mm/nommu.c index 45131b41bcdb..79c3cac87afa 100644 --- a/mm/nommu.c +++ b/mm/nommu.c | |||
@@ -66,6 +66,21 @@ int heap_stack_gap = 0; | |||
66 | 66 | ||
67 | atomic_long_t mmap_pages_allocated; | 67 | atomic_long_t mmap_pages_allocated; |
68 | 68 | ||
69 | /* | ||
70 | * The global memory commitment made in the system can be a metric | ||
71 | * that can be used to drive ballooning decisions when Linux is hosted | ||
72 | * as a guest. On Hyper-V, the host implements a policy engine for dynamically | ||
73 | * balancing memory across competing virtual machines that are hosted. | ||
74 | * Several metrics drive this policy engine including the guest reported | ||
75 | * memory commitment. | ||
76 | */ | ||
77 | unsigned long vm_memory_committed(void) | ||
78 | { | ||
79 | return percpu_counter_read_positive(&vm_committed_as); | ||
80 | } | ||
81 | |||
82 | EXPORT_SYMBOL_GPL(vm_memory_committed); | ||
83 | |||
69 | EXPORT_SYMBOL(mem_map); | 84 | EXPORT_SYMBOL(mem_map); |
70 | EXPORT_SYMBOL(num_physpages); | 85 | EXPORT_SYMBOL(num_physpages); |
71 | 86 | ||