|
@@ -88,6 +88,20 @@ int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
|
|
|
*/
|
|
|
struct percpu_counter vm_committed_as ____cacheline_aligned_in_smp;
|
|
|
|
|
|
+/*
|
|
|
+ * The global memory commitment made in the system can be a metric
|
|
|
+ * that can be used to drive ballooning decisions when Linux is hosted
|
|
|
+ * as a guest. On Hyper-V, the host implements a policy engine for dynamically
|
|
|
+ * balancing memory across competing virtual machines that are hosted.
|
|
|
+ * Several metrics drive this policy engine including the guest reported
|
|
|
+ * memory commitment.
|
|
|
+ */
|
|
|
+unsigned long vm_memory_committed(void)
|
|
|
+{
|
|
|
+ return percpu_counter_read_positive(&vm_committed_as);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(vm_memory_committed);
|
|
|
+
|
|
|
/*
|
|
|
* Check that a process has enough memory to allocate a new virtual
|
|
|
* mapping. 0 means there is enough memory for the allocation to
|