All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: Chris Ross <chris@tebibyte.org>
Cc: marcelo.tosatti@cyclades.com, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, piggin@cyberone.com.au, riel@redhat.com,
	andrea@novell.com, mmokrejs@ribosome.natur.cuni.cz,
	tglx@linutronix.de
Subject: Re: [PATCH] fix spurious OOM kills
Date: Tue, 16 Nov 2004 19:45:37 -0800	[thread overview]
Message-ID: <20041116194537.7cc64c2a.akpm@osdl.org> (raw)
In-Reply-To: <4193E056.6070100@tebibyte.org>

Chris Ross <chris@tebibyte.org> wrote:
>
> the oom killer strikes at the linking stage.

Can you beat on this patch a bit?

--- 25/mm/vmscan.c~a	2004-11-16 19:25:55.360041112 -0800
+++ 25-akpm/mm/vmscan.c	2004-11-16 19:26:45.791374384 -0800
@@ -918,11 +918,11 @@ int try_to_free_pages(struct zone **zone
 		lru_pages += zone->nr_active + zone->nr_inactive;
 	}
 
-	for (priority = DEF_PRIORITY; priority >= 0; priority--) {
+	for (priority = DEF_PRIORITY; priority >= -1; priority--) {
 		sc.nr_mapped = read_page_state(nr_mapped);
 		sc.nr_scanned = 0;
 		sc.nr_reclaimed = 0;
-		sc.priority = priority;
+		sc.priority = (priority < 0) ? 0 : priority;
 		shrink_caches(zones, &sc);
 		shrink_slab(sc.nr_scanned, gfp_mask, lru_pages);
 		if (reclaim_state) {
_


It just adds another priority-0 scanning pass before declaring oom.  It
works for me.

See, when redoing the 2.5 scanning code a couple of years ago I reduced the
amount of scanning which we do before declaring oom (compared with 2.4) by
quite a lot.  It was basically a "lets try this and see who complains"
exercise.

And since that time, the way in which `priority' is interpreted has
changed, which may have worsened things.

Presently we're scanning the entire active list twice and the entire
inactive list twice.  I suspect that if the inactive list is full of
referenced pages, that just isn't enough.  However it's hard to work out
what _is_ enough.  Still, it doesn't hurt to do a bit more scanning before
going off killing things, so the above seems a safe approach.

If the above still doesn't work, try replacing -1 with -2, etc.



WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@osdl.org>
To: Chris Ross <chris@tebibyte.org>
Cc: marcelo.tosatti@cyclades.com, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, piggin@cyberone.com.au, riel@redhat.com,
	andrea@novell.com, mmokrejs@ribosome.natur.cuni.cz,
	tglx@linutronix.de
Subject: Re: [PATCH] fix spurious OOM kills
Date: Tue, 16 Nov 2004 19:45:37 -0800	[thread overview]
Message-ID: <20041116194537.7cc64c2a.akpm@osdl.org> (raw)
In-Reply-To: <4193E056.6070100@tebibyte.org>

Chris Ross <chris@tebibyte.org> wrote:
>
> the oom killer strikes at the linking stage.

Can you beat on this patch a bit?

--- 25/mm/vmscan.c~a	2004-11-16 19:25:55.360041112 -0800
+++ 25-akpm/mm/vmscan.c	2004-11-16 19:26:45.791374384 -0800
@@ -918,11 +918,11 @@ int try_to_free_pages(struct zone **zone
 		lru_pages += zone->nr_active + zone->nr_inactive;
 	}
 
-	for (priority = DEF_PRIORITY; priority >= 0; priority--) {
+	for (priority = DEF_PRIORITY; priority >= -1; priority--) {
 		sc.nr_mapped = read_page_state(nr_mapped);
 		sc.nr_scanned = 0;
 		sc.nr_reclaimed = 0;
-		sc.priority = priority;
+		sc.priority = (priority < 0) ? 0 : priority;
 		shrink_caches(zones, &sc);
 		shrink_slab(sc.nr_scanned, gfp_mask, lru_pages);
 		if (reclaim_state) {
_


It just adds another priority-0 scanning pass before declaring oom.  It
works for me.

See, when redoing the 2.5 scanning code a couple of years ago I reduced the
amount of scanning which we do before declaring oom (compared with 2.4) by
quite a lot.  It was basically a "lets try this and see who complains"
exercise.

And since that time, the way in which `priority' is interpreted has
changed, which may have worsened things.

Presently we're scanning the entire active list twice and the entire
inactive list twice.  I suspect that if the inactive list is full of
referenced pages, that just isn't enough.  However it's hard to work out
what _is_ enough.  Still, it doesn't hurt to do a bit more scanning before
going off killing things, so the above seems a safe approach.

If the above still doesn't work, try replacing -1 with -2, etc.


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>

  parent reply	other threads:[~2004-11-17  3:46 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-11 11:29 [PATCH] fix spurious OOM kills Marcelo Tosatti
2004-11-11 11:29 ` Marcelo Tosatti
2004-11-11 15:42 ` Andrea Arcangeli
2004-11-11 15:42   ` Andrea Arcangeli
2004-11-11 12:38   ` Marcelo Tosatti
2004-11-11 12:38     ` Marcelo Tosatti
2004-11-11 16:50     ` Andrea Arcangeli
2004-11-11 16:50       ` Andrea Arcangeli
2004-11-11 13:56       ` Marcelo Tosatti
2004-11-11 13:56         ` Marcelo Tosatti
2004-11-11 21:45         ` Andrea Arcangeli
2004-11-11 21:45           ` Andrea Arcangeli
2004-11-11 19:19           ` Marcelo Tosatti
2004-11-11 19:19             ` Marcelo Tosatti
2004-11-11 17:42       ` Martin J. Bligh
2004-11-11 17:42         ` Martin J. Bligh
2004-11-11 21:50         ` Andrea Arcangeli
2004-11-11 21:50           ` Andrea Arcangeli
2004-11-12 11:13       ` fix for mpol mm corruption on tmpfs Andrea Arcangeli
2004-11-12 11:13         ` Andrea Arcangeli
2004-11-11 21:57 ` [PATCH] fix spurious OOM kills Chris Ross
2004-11-11 21:57   ` Chris Ross
2004-11-12 16:52   ` Chris Ross
2004-11-12 16:52     ` Chris Ross
2004-11-12 23:56     ` Nick Piggin
2004-11-12 23:56       ` Nick Piggin
2004-11-13 23:37     ` Andrea Arcangeli
2004-11-13 23:37       ` Andrea Arcangeli
2004-11-14  9:44       ` Marcelo Tosatti
2004-11-14  9:44         ` Marcelo Tosatti
2004-11-14 10:02         ` Marcelo Tosatti
2004-11-14 10:02           ` Marcelo Tosatti
2004-11-14 17:11           ` Andrea Arcangeli
2004-11-14 17:11             ` Andrea Arcangeli
2004-11-14 17:03         ` Andrea Arcangeli
2004-11-14 17:03           ` Andrea Arcangeli
2004-11-14 18:16           ` Martin J. Bligh
2004-11-14 18:16             ` Martin J. Bligh
2004-11-14 18:27             ` Andrea Arcangeli
2004-11-14 18:27               ` Andrea Arcangeli
2004-11-14 20:21           ` Marcelo Tosatti
2004-11-14 20:21             ` Marcelo Tosatti
2004-11-16 16:30             ` Chris Ross
2004-11-16 16:30               ` Chris Ross
2004-11-17  9:08               ` Chris Ross
2004-11-17  9:23                 ` Andrew Morton
2004-11-17  9:23                   ` Andrew Morton
2004-11-17  6:06                   ` Marcelo Tosatti
2004-11-17  6:06                     ` Marcelo Tosatti
2004-11-17  6:08                     ` Marcelo Tosatti
2004-11-17  6:08                       ` Marcelo Tosatti
2004-11-17  6:38                       ` Marcelo Tosatti
2004-11-17  6:38                         ` Marcelo Tosatti
2004-11-17 11:04                         ` Chris Ross
2004-11-17 11:04                           ` Chris Ross
2004-11-17 10:26                       ` Andrew Morton
2004-11-17 10:26                         ` Andrew Morton
2004-11-17 10:50                       ` Chris Ross
2004-11-17 10:50                         ` Chris Ross
2004-11-17  7:09                         ` Marcelo Tosatti
2004-11-17  7:09                           ` Marcelo Tosatti
2004-11-17 11:49                           ` Chris Ross
2004-11-17 11:49                             ` Chris Ross
2004-11-17 12:09                           ` Rik van Riel
2004-11-17 12:09                             ` Rik van Riel
2004-11-17 13:12                   ` Chris Ross
2004-11-17 13:12                     ` Chris Ross
     [not found]                   ` <419CD8C1.4030506@ribosome.natur.cuni.cz>
2004-11-18 21:16                     ` Andrew Morton
2004-11-18 21:16                       ` Andrew Morton
     [not found]                       ` <419D25B5.1060504@ribosome.natur.cuni.cz>
     [not found]                         ` <419D2987.8010305@cyberone.com.au>
2004-11-19  0:03                           ` Martin MOKREJŠ
2004-11-19  0:03                             ` Martin MOKREJŠ
2004-11-19  0:08                             ` Andrew Morton
2004-11-19  0:08                               ` Andrew Morton
2004-11-19  8:09                               ` Marcelo Tosatti
2004-11-19  8:09                                 ` Marcelo Tosatti
2004-11-19 16:17                                 ` Thomas Gleixner
     [not found]                               ` <419E821F.7010601@ribosome.natur.cuni.cz>
2004-11-20 10:23                                 ` Thomas Gleixner
2004-11-20 10:23                                   ` Thomas Gleixner
2004-11-20 10:45                                   ` Martin MOKREJŠ
2004-11-20 10:45                                     ` Martin MOKREJŠ
2004-11-20 11:29                                   ` Martin MOKREJŠ
2004-11-20 11:29                                     ` Martin MOKREJŠ
2004-11-20 13:29                                     ` Thomas Gleixner
2004-11-20 13:29                                       ` Thomas Gleixner
2004-11-20 21:19                                       ` Martin MOKREJŠ
2004-11-20 21:19                                         ` Martin MOKREJŠ
2004-11-21 11:53                                         ` Thomas Gleixner
2004-11-21 11:53                                           ` Thomas Gleixner
2004-11-21 12:17                                           ` Martin MOKREJŠ
2004-11-21 12:17                                             ` Martin MOKREJŠ
2004-11-21 13:57                                             ` Thomas Gleixner
2004-11-21 13:57                                               ` Thomas Gleixner
2004-11-22 10:55                                               ` Thomas Gleixner
2004-11-22 10:55                                                 ` Thomas Gleixner
2004-11-23  7:41                                                 ` Martin MOKREJŠ
2004-11-23  7:41                                                   ` Martin MOKREJŠ
2004-11-23 10:27                                                   ` Thomas Gleixner
2004-11-23 10:27                                                     ` Thomas Gleixner
2004-11-24 15:52                                                     ` Martin MOKREJŠ
2004-11-24 15:52                                                       ` Martin MOKREJŠ
2004-11-24 16:36                                                       ` Thomas Gleixner
2004-11-24 16:36                                                         ` Thomas Gleixner
2004-12-14 16:04                                                     ` Martin MOKREJŠ
2004-12-14 16:04                                                       ` Martin MOKREJŠ
2004-12-14 17:38                                                       ` Andrea Arcangeli
2004-12-14 17:38                                                         ` Andrea Arcangeli
2004-12-14 23:30                                                         ` Nick Piggin
2004-12-14 23:30                                                           ` Nick Piggin
2004-12-14 23:55                                                           ` Andrea Arcangeli
2004-12-14 23:55                                                             ` Andrea Arcangeli
2004-12-15  0:16                                                             ` Thomas Gleixner
2004-12-15  0:16                                                               ` Thomas Gleixner
2004-12-15  0:37                                                               ` Andrea Arcangeli
2004-12-15  0:37                                                                 ` Andrea Arcangeli
2004-12-15  0:48                                                                 ` Thomas Gleixner
2004-12-15  0:48                                                                   ` Thomas Gleixner
2004-11-21 19:01                   ` Chris Ross
2004-11-21 19:01                     ` Chris Ross
2004-11-22 12:15                     ` Chris Ross
2004-11-22 12:15                       ` Chris Ross
2004-11-22  8:35                       ` Marcelo Tosatti
2004-11-22  8:35                         ` Marcelo Tosatti
2004-11-16  8:37           ` Chris Ross
2004-11-16  8:37             ` Chris Ross
2004-11-17  3:45   ` Andrew Morton [this message]
2004-11-17  3:45     ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20041116194537.7cc64c2a.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=andrea@novell.com \
    --cc=chris@tebibyte.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=marcelo.tosatti@cyclades.com \
    --cc=mmokrejs@ribosome.natur.cuni.cz \
    --cc=piggin@cyberone.com.au \
    --cc=riel@redhat.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.