add OOM debug
Subsystems (3)
PATCH 1/1 add OOM debug
This patch provides more debug info when the system is OOM. It displays
memory stats (basically sysrq-m info) from __alloc_pages() when page allocation fails and during OOM kill.
Thanks to Dave Jones for coming up with the idea.
Signed-off-by Janet Morgan <[email protected]>
mm/oom_kill.c +4 -3
@@ -258,6 +258,10 @@ void out_of_memory(unsigned int __nocaststruct mm_struct *mm =NULL ;task_t * p; +printk ("oom-killer: gfp_mask=0x%x\n" , gfp_mask); +/* print memory stats */ +show_mem (); +read_lock (&tasklist_lock); retry: p =select_bad_process ();
@@ -268,12 +272,9 @@ retry:/* Found nothing?!?! Either we hang forever, or we panic. */ if (!p) {read_unlock (&tasklist_lock); -show_free_areas ();panic ("Out of memory and no killable processes...\n" ); } -printk ("oom-killer: gfp_mask=0x%x\n" , gfp_mask); -show_free_areas (); mm =oom_kill_process (p);if (!mm) goto retry;
mm/page_alloc.c +1 -0
@@ -905,6 +905,7 @@ nopage:" order:%d, mode:0x%x\n" , p->comm, order, gfp_mask);dump_stack (); +show_mem (); }return NULL ; got_pg: