mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	mm: catch memory commitment underflow
Print a warning (if CONFIG_DEBUG_VM=y) when memory commitment becomes too negative. This shouldn't happen any more - the previous two patches fixed the committed_as underflow issues. [akpm@linux-foundation.org: use VM_WARN_ONCE, per Dave] Signed-off-by: Konstantin Khlebnikov <koct9i@gmail.com> Cc: Hugh Dickins <hughd@google.com> Cc: Dave Hansen <dave.hansen@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									7714251799
								
							
						
					
					
						commit
						82f71ae4a2
					
				
					 1 changed files with 5 additions and 0 deletions
				
			
		| 
						 | 
					@ -31,6 +31,7 @@
 | 
				
			||||||
#include <linux/mempolicy.h>
 | 
					#include <linux/mempolicy.h>
 | 
				
			||||||
#include <linux/rmap.h>
 | 
					#include <linux/rmap.h>
 | 
				
			||||||
#include <linux/mmu_notifier.h>
 | 
					#include <linux/mmu_notifier.h>
 | 
				
			||||||
 | 
					#include <linux/mmdebug.h>
 | 
				
			||||||
#include <linux/perf_event.h>
 | 
					#include <linux/perf_event.h>
 | 
				
			||||||
#include <linux/audit.h>
 | 
					#include <linux/audit.h>
 | 
				
			||||||
#include <linux/khugepaged.h>
 | 
					#include <linux/khugepaged.h>
 | 
				
			||||||
| 
						 | 
					@ -134,6 +135,10 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	unsigned long free, allowed, reserve;
 | 
						unsigned long free, allowed, reserve;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						VM_WARN_ONCE(percpu_counter_read(&vm_committed_as) <
 | 
				
			||||||
 | 
								-(s64)vm_committed_as_batch * num_online_cpus(),
 | 
				
			||||||
 | 
								"memory commitment underflow");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	vm_acct_memory(pages);
 | 
						vm_acct_memory(pages);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue