aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorDavid Rientjes <rientjes@google.com>2012-07-31 19:42:56 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-07-31 21:42:42 -0400
commitde34d965a80d0f61a354bdefa0b15a88bcff2028 (patch)
treeac20c4e343a93234abc9c068830d9b0b0ed2bda9 /mm
parent121d1ba0a019e1465a53533aea133b1b0f6b442d (diff)
mm, oom: replace some information in tasklist dump
The number of ptes and swap entries are used in the oom killer's badness heuristic, so they should be shown in the tasklist dump. This patch adds those fields and replaces cpu and oom_adj values that are currently emitted. Cpu isn't interesting and oom_adj is deprecated and will be removed later this year, the same information is already displayed as oom_score_adj which is used internally. At the same time, make the documentation a little more clear to state this information is helpful to determine why the oom killer chose the task it did to kill. Signed-off-by: David Rientjes <rientjes@google.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/oom_kill.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index 50e74373e855..c82ede69bf3f 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -371,8 +371,8 @@ static struct task_struct *select_bad_process(unsigned int *ppoints,
371 * Dumps the current memory state of all eligible tasks. Tasks not in the same 371 * Dumps the current memory state of all eligible tasks. Tasks not in the same
372 * memcg, not in the same cpuset, or bound to a disjoint set of mempolicy nodes 372 * memcg, not in the same cpuset, or bound to a disjoint set of mempolicy nodes
373 * are not shown. 373 * are not shown.
374 * State information includes task's pid, uid, tgid, vm size, rss, cpu, oom_adj 374 * State information includes task's pid, uid, tgid, vm size, rss, nr_ptes,
375 * value, oom_score_adj value, and name. 375 * swapents, oom_score_adj value, and name.
376 * 376 *
377 * Call with tasklist_lock read-locked. 377 * Call with tasklist_lock read-locked.
378 */ 378 */
@@ -381,7 +381,7 @@ static void dump_tasks(const struct mem_cgroup *memcg, const nodemask_t *nodemas
381 struct task_struct *p; 381 struct task_struct *p;
382 struct task_struct *task; 382 struct task_struct *task;
383 383
384 pr_info("[ pid ] uid tgid total_vm rss cpu oom_adj oom_score_adj name\n"); 384 pr_info("[ pid ] uid tgid total_vm rss nr_ptes swapents oom_score_adj name\n");
385 for_each_process(p) { 385 for_each_process(p) {
386 if (oom_unkillable_task(p, memcg, nodemask)) 386 if (oom_unkillable_task(p, memcg, nodemask))
387 continue; 387 continue;
@@ -396,10 +396,11 @@ static void dump_tasks(const struct mem_cgroup *memcg, const nodemask_t *nodemas
396 continue; 396 continue;
397 } 397 }
398 398
399 pr_info("[%5d] %5d %5d %8lu %8lu %3u %3d %5d %s\n", 399 pr_info("[%5d] %5d %5d %8lu %8lu %7lu %8lu %5d %s\n",
400 task->pid, from_kuid(&init_user_ns, task_uid(task)), 400 task->pid, from_kuid(&init_user_ns, task_uid(task)),
401 task->tgid, task->mm->total_vm, get_mm_rss(task->mm), 401 task->tgid, task->mm->total_vm, get_mm_rss(task->mm),
402 task_cpu(task), task->signal->oom_adj, 402 task->mm->nr_ptes,
403 get_mm_counter(task->mm, MM_SWAPENTS),
403 task->signal->oom_score_adj, task->comm); 404 task->signal->oom_score_adj, task->comm);
404 task_unlock(task); 405 task_unlock(task);
405 } 406 }