projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0dcecae
)
oom: use pte pages in OOM score
author
KOSAKI Motohiro
<
[email protected]
>
Wed, 27 Apr 2011 22:26:50 +0000
(15:26 -0700)
committer
Linus Torvalds
<
[email protected]
>
Thu, 28 Apr 2011 18:28:21 +0000
(11:28 -0700)
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 <
[email protected]
>
Signed-off-by: KOSAKI Motohiro <
[email protected]
>
Cc: Hugh Dickins <
[email protected]
>
Cc: KAMEZAWA Hiroyuki <
[email protected]
>
Cc: Oleg Nesterov <
[email protected]
>
Acked-by: David Rientjes <
[email protected]
>
Cc: <
[email protected]
> [2.6.36+]
Signed-off-by: Andrew Morton <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
mm/oom_kill.c
patch
|
blob
|
history
diff --git
a/mm/oom_kill.c
b/mm/oom_kill.c
index 83fb72c108b7947a7b18989455607e14ead0084f..f52e85c80e8d554fcae1a7ad40e0617c0bb1318f 100644
(file)
--- a/
mm/oom_kill.c
+++ b/
mm/oom_kill.c
@@
-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);
/*