Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 336969
b: refs/heads/master
c: 997071b
h: refs/heads/master
i:
  336967: fd0ee5b
v: v3
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed Nov 15, 2012
1 parent 77ed7fc commit 468c171
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d892de8d3fb1e807de561289cfb1fed42950440a
refs/heads/master: 997071bcb34005f42e0fe5bc7930e895b070f251
2 changes: 1 addition & 1 deletion trunk/drivers/xen/xen-selfballoon.c
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ static void selfballoon_process(struct work_struct *work)
if (xen_selfballooning_enabled) {
cur_pages = totalram_pages;
tgt_pages = cur_pages; /* default is no change */
goal_pages = percpu_counter_read_positive(&vm_committed_as) +
goal_pages = vm_memory_committed() +
totalreserve_pages +
MB2PAGES(selfballoon_reserved_mb);
#ifdef CONFIG_FRONTSWAP
Expand Down
2 changes: 2 additions & 0 deletions trunk/include/linux/mman.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ extern int sysctl_overcommit_memory;
extern int sysctl_overcommit_ratio;
extern struct percpu_counter vm_committed_as;

unsigned long vm_memory_committed(void);

static inline void vm_acct_memory(long pages)
{
percpu_counter_add(&vm_committed_as, pages);
Expand Down
14 changes: 14 additions & 0 deletions trunk/mm/mmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
15 changes: 15 additions & 0 deletions trunk/mm/nommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,21 @@ int heap_stack_gap = 0;

atomic_long_t mmap_pages_allocated;

/*
* 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);

EXPORT_SYMBOL(mem_map);
EXPORT_SYMBOL(num_physpages);

Expand Down

0 comments on commit 468c171

Please sign in to comment.