Re: [PATCH v3]mm/oom-kill: direct hardware access processes shouldget bonus

From: KAMEZAWA Hiroyuki
Date: Wed Jan 05 2011 - 20:01:27 EST


On Tue, 04 Jan 2011 16:56:47 +0800
"Figo.zhang" <zhangtianfei@xxxxxxxxxxxxxxxx> wrote:

> On 01/04/2011 04:28 PM, KAMEZAWA Hiroyuki wrote:
> > On Tue, 04 Jan 2011 15:51:44 +0800
> > "Figo.zhang"<zhangtianfei@xxxxxxxxxxxxxxxx> wrote:
> >
> >>
> >> i had send the patch to protect the hardware access processes for
> >> oom-killer before, but rientjes have not agree with me.
> >>
> >> but today i catch log from my desktop. oom-killer have kill my "minicom"
> >> and "Xorg". so i think it should add protection about it.
> >>
> >
> > Off topic.
> >
> > In this log, I found
> >
> >>> Jan 4 15:22:55 figo-desktop kernel: Free swap = -1636kB
> >>> Jan 4 15:22:55 figo-desktop kernel: Total swap = 0kB
> >>> Jan 4 15:22:55 figo-desktop kernel: 515070 pages RAM
> >
> > ... This means total_swap_pages = 0 while pages are read-in at swapoff.
> >
> > Let's see 'points' for oom
> > ==
> > points = (get_mm_rss(p->mm) + get_mm_counter(p->mm, MM_SWAPENTS)) * 1000 /
> > totalpages;
> > ==
> >
> > Here, totalpages = total_ram + total_swap but totalswap is 0 here.
> >
> > So, points can be> 1000, easily.
> > (This seems not to be related to the Xorg's death itself)
>
> total_swap is 0, so
> totalpages = total_ram,
> get_mm_counter(p->mm, MM_SWAPENTS) = 0,
>
> so
> points = (get_mm_rss(p->mm)) * 1000 / totalpages;
>
> so points canot larger than 1000.

mm_counter's swap count is reduced only when swapents are removed from
page table. But total_swap is reduced to be 0 before try_to_unuse().


Thanks,
-Kame



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/