oom: use pte pages in OOM score
PTE pages eat up memory just like anything else, but we do not account for them in any way in the OOM scores. They are also _guaranteed_ to get freed up when a process is OOM killed, while RSS is not. Reported-by: Dave Hansen <dave@linux.vnet.ibm.com> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Hugh Dickins <hughd@google.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Oleg Nesterov <oleg@redhat.com> Acked-by: David Rientjes <rientjes@google.com> Cc: <stable@kernel.org> [2.6.36+] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
					parent
					
						
							
								0dcecae203
							
						
					
				
			
			
				commit
				
					
						f755a042d8
					
				
			
		
					 1 changed files with 6 additions and 3 deletions
				
			
		|  | @ -172,10 +172,13 @@ unsigned int oom_badness(struct task_struct *p, struct mem_cgroup *mem, | |||
| 
 | ||||
| 	/*
 | ||||
| 	 * The baseline for the badness score is the proportion of RAM that each | ||||
| 	 * task's rss and swap space use. | ||||
| 	 * task's rss, pagetable and swap space use. | ||||
| 	 */ | ||||
| 	points = (get_mm_rss(p->mm) + get_mm_counter(p->mm, MM_SWAPENTS)) * 1000 / | ||||
| 			totalpages; | ||||
| 	points = get_mm_rss(p->mm) + p->mm->nr_ptes; | ||||
| 	points += get_mm_counter(p->mm, MM_SWAPENTS); | ||||
| 
 | ||||
| 	points *= 1000; | ||||
| 	points /= totalpages; | ||||
| 	task_unlock(p); | ||||
| 
 | ||||
| 	/*
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 KOSAKI Motohiro
				KOSAKI Motohiro