Re: Kernel falls apart under light memory pressure (i.e. linking vmlinux)
From: Andrew Lutomirski
Date: Fri May 20 2011 - 12:01:37 EST
On Fri, May 20, 2011 at 11:33 AM, Minchan Kim <minchan.kim@xxxxxxxxx> wrote:
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 8bfd450..a5c01e9 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -1430,7 +1430,10 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone,
>
> /* Check if we should syncronously wait for writeback */
> if (should_reclaim_stall(nr_taken, nr_reclaimed, priority, sc)) {
> + unsigned long nr_active;
> set_reclaim_mode(priority, sc, true);
> + nr_active = clear_active_flags(&page_list, NULL);
> + count_vm_events(PGDEACTIVATE, nr_active);
> nr_reclaimed += shrink_page_list(&page_list, zone, sc);
> }
>
> --
I'm now running that patch *without* the pgdat_balanced fix or the
need_resched check. The VM_BUG_ON doesn't happen but I still get
incorrect OOM kills.
However, if I replace the check with:
if (false &&should_reclaim_stall(nr_taken, nr_reclaimed, priority, sc)) {
then my system lags under bad memory pressure but recovers without
OOMs or oopses.
Is that expected?
--Andy
> 1.7.1
>
> --
> Kind regards,
> Minchan Kim
>
--
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/