Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79b9ce31 authored by Marcelo Tosatti's avatar Marcelo Tosatti Committed by Linus Torvalds
Browse files

[PATCH] print order information when OOM killing



Dump the current allocation order when OOM killing.

Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent cb2c0233
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -228,7 +228,7 @@ static struct sysrq_key_op sysrq_term_op = {

static void moom_callback(void *ignored)
{
	out_of_memory(GFP_KERNEL);
	out_of_memory(GFP_KERNEL, 0);
}

static DECLARE_WORK(moom_work, moom_callback, NULL);
+1 −1
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ struct swap_list_t {
#define vm_swap_full() (nr_swap_pages*2 < total_swap_pages)

/* linux/mm/oom_kill.c */
extern void out_of_memory(unsigned int __nocast gfp_mask);
extern void out_of_memory(unsigned int __nocast gfp_mask, int order);

/* linux/mm/memory.c */
extern void swapin_readahead(swp_entry_t, unsigned long, struct vm_area_struct *);
+2 −2
Original line number Diff line number Diff line
@@ -253,12 +253,12 @@ static struct mm_struct *oom_kill_process(struct task_struct *p)
 * OR try to be smart about which process to kill. Note that we
 * don't have to be perfect here, we just have to be good.
 */
void out_of_memory(unsigned int __nocast gfp_mask)
void out_of_memory(unsigned int __nocast gfp_mask, int order)
{
	struct mm_struct *mm = NULL;
	task_t * p;

	printk("oom-killer: gfp_mask=0x%x\n", gfp_mask);
	printk("oom-killer: gfp_mask=0x%x, order=%d\n", gfp_mask, order);
	/* print memory stats */
	show_mem();

+1 −1
Original line number Diff line number Diff line
@@ -936,7 +936,7 @@ __alloc_pages(unsigned int __nocast gfp_mask, unsigned int order,
				goto got_pg;
		}

		out_of_memory(gfp_mask);
		out_of_memory(gfp_mask, order);
		goto restart;
	}