All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: "Udo A. Steinberg" <us15@os.inf.tu-dresden.de>,
	Andrew Morton <akpm@osdl.org>,
	torvalds@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: Possible dcache BUG
Date: Tue, 24 Aug 2004 15:20:36 -0300	[thread overview]
Message-ID: <20040824182036.GB8806@logos.cnet> (raw)
In-Reply-To: <412AF113.6000804@yahoo.com.au>

On Tue, Aug 24, 2004 at 05:41:07PM +1000, Nick Piggin wrote:
> Udo A. Steinberg wrote:
> 
> >On Fri, 20 Aug 2004 17:49:55 +1000 Nick Piggin (NP) wrote:
> >
> >NP> Can you reproduce the OOM with the following patch please? Then
> >NP> send the output.
> >
> >I reproduced the problem using a slightly different setup to trigger the
> >problem faster:  128 MB RAM, 188992 KB swap
> >
> >Here's the output of the OOM killer with your patch applied:
> >
> >oom-killer: gfp_mask=0x1d2
> >DMA per-cpu:
> >cpu 0 hot: low 2, high 6, batch 1
> >cpu 0 cold: low 0, high 2, batch 1
> >Normal per-cpu:
> >cpu 0 hot: low 14, high 42, batch 7
> >cpu 0 cold: low 0, high 14, batch 7
> >HighMem per-cpu: empty
> >
> >Free pages:        1316kB (0kB HighMem)
> >Active:5281 inactive:23611 dirty:0 writeback:0 unstable:0 free:329 
> >slab:1403 mapped:12232 pagetables:167
> >DMA free:712kB min:44kB low:88kB high:132kB active:5076kB inactive:5332kB 
> >present:16384kB pages_scanned:10112 all_unreclaimable? yes
> >protections[]: 22 178 178
> >Normal free:604kB min:312kB low:624kB high:936kB active:16048kB 
> >inactive:89112kB present:114688kB pages_scanned:62432 all_unreclaimable? 
> >yes
> >protections[]: 0 156 156
> >HighMem free:0kB min:128kB low:256kB high:384kB active:0kB inactive:0kB 
> >present:0kB pages_scanned:0 all_unreclaimable? no
> >protections[]: 0 0 0
> >DMA: 0*4kB 3*8kB 13*16kB 1*32kB 1*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 
> >0*2048kB 0*4096kB = 712kB
> >Normal: 1*4kB 1*8kB 1*16kB 0*32kB 1*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 
> >0*2048kB 0*4096kB = 604kB
> >HighMem: empty
> >Swap cache: add 90886, delete 74524, find 4659/4974, race 0+0
> >Out of Memory: Killed process 1217 (gphoto2).
> >
> >

Hi Nick,

> OK, all_unreclaimable caused the scanner to virtually stop. If 
> all_unreclaimable
> gets set, it throttles the scanning of that zone right back, which in 
> turn greatly
> lowers the chance that all_unreclaimable will get cleared.

Which is the logic to stop tasks from shrink_zone()ing zones
which are known to be heavily scanned by kswapd 
(ie zone->pages_scanned > zone->present_pages * 2).

With that logic we want tasks doing direct free to 
blk_congestion_wait(WRITE, HZ/10) instead shrink_zone()ing 
(and blk_congestion_wait(WRITE, HZ/50) on __alloc_pages()).

I dont fully understand the all_unreclaimable logic yet. AFAICS it was
added to prevent tasks from wasting excessive CPU time on shrinking
the lists.

But at the same time it stops tasks from potentially throttling on IO 
(on shrink_list -> pageout). Is that a feature?

> When we get to priority = 0 in try_to_free_pages (ie. close to OOM), it 
> might be
> worth clearing each zone's all_unreclaimable for this last time 'round 
> the loop.

Or ignore all_unreclaimable when priority == 0 like this?

It feels hackish for me but will effectively work as cleaning all_unreclaimable
on zero priority.

Against 2.6.9-rc1-bktoday. 

Udo, one question, do you have swap space available when the OOM killer triggers ?
Dont remember seeing any info wrt to that.

--- mm/vmscan.c.orig	2004-08-24 16:48:09.467086840 -0300
+++ mm/vmscan.c	2004-08-24 16:51:55.304754296 -0300
@@ -878,7 +878,8 @@
 		if (zone->prev_priority > sc->priority)
 			zone->prev_priority = sc->priority;
 
-		if (zone->all_unreclaimable && sc->priority != DEF_PRIORITY)
+		if (zone->all_unreclaimable && 
+				(sc->priority < DEF_PRIORITY && sc->priority > 0))
 			continue;	/* Let kswapd poll it */
 
 		shrink_zone(zone, sc);
@@ -1054,7 +1055,8 @@
 		for (i = 0; i <= end_zone; i++) {
 			struct zone *zone = pgdat->node_zones + i;
 
-			if (zone->all_unreclaimable && priority != DEF_PRIORITY)
+			if (zone->all_unreclaimable && 
+					(priority < DEF_PRIORITY && priority > 0))
 				continue;
 
 			if (nr_pages == 0) {	/* Not software suspend */

  reply	other threads:[~2004-08-24 19:57 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-02 13:14 Possible dcache BUG Brett Charbeneau
2004-08-05  2:16 ` Gene Heskett
2004-08-05  3:46   ` Andrew Morton
2004-08-05  4:31     ` Gene Heskett
2004-08-05  0:44       ` Chris Shoemaker
2004-08-05  8:35         ` Denis Vlasenko
2004-08-05 14:14           ` Gene Heskett
2004-08-05 13:48         ` Gene Heskett
     [not found]           ` <200408210118.02011.vda@port.imtp.ilyichevsk.odessa.ua>
2004-08-21  1:40             ` Gene Heskett
2004-08-05  8:33       ` Denis Vlasenko
2004-08-05 14:19         ` Gene Heskett
     [not found]           ` <200408070203.35268.vda@port.imtp.ilyichevsk.odessa.ua>
2004-08-07  1:28             ` Gene Heskett
2004-08-05 21:26         ` Chris Shoemaker
2004-08-05  7:25   ` Linus Torvalds
2004-08-05  7:31     ` Andrew Morton
2004-08-05  8:33     ` Denis Vlasenko
2004-08-05 14:55       ` Gene Heskett
2004-08-05 16:26       ` Linus Torvalds
2004-08-05 18:06         ` Ingo Molnar
2004-08-05 18:50           ` Linus Torvalds
2004-08-05 20:29             ` Andi Kleen
     [not found]             ` <20040806073739.GA6617@elte.hu>
2004-08-06 11:31               ` Andi Kleen
     [not found]               ` <20040806004231.143c8bd2.akpm@osdl.org>
2004-08-06  8:27                 ` Ingo Molnar
2004-08-06 11:51                 ` Gene Heskett
2004-08-06 16:58                   ` Linus Torvalds
2004-08-06 17:16                     ` Gene Heskett
2004-08-06 17:26                       ` William Lee Irwin III
2004-08-06 23:19                         ` Chris Shoemaker
2004-08-07  4:15                           ` William Lee Irwin III
2004-08-07  0:05                             ` Chris Shoemaker
2004-08-07  5:50                               ` William Lee Irwin III
2004-08-06 23:09                     ` Chris Shoemaker
2004-08-07  6:20                       ` Linus Torvalds
2004-08-07 12:38                         ` Gene Heskett
2004-08-07 13:44                         ` Chris Shoemaker
2004-08-07 18:49                           ` Linus Torvalds
2004-08-07 19:01                           ` Gene Heskett
2004-08-06 17:16               ` Linus Torvalds
2004-08-05 21:10         ` Chris Shoemaker
2004-08-06  2:03         ` Gene Heskett
2004-08-06  2:12         ` Gene Heskett
2004-08-06  2:50     ` Linus Torvalds
2004-08-06  3:18       ` viro
2004-08-06  3:24         ` Linus Torvalds
2004-08-08  4:42           ` Gene Heskett
2004-08-08 14:30           ` Gene Heskett
2004-08-08 18:39             ` Andrew Morton
2004-08-10  4:12               ` Gene Heskett
2004-08-11  3:42                 ` Gene Heskett
2004-08-11  3:46                   ` Linus Torvalds
2004-08-11  4:18                     ` Udo A. Steinberg
2004-08-11  5:13                       ` Linus Torvalds
2004-08-11  5:15                         ` Linus Torvalds
2004-08-11  5:33                           ` Udo A. Steinberg
2004-08-11 14:37                           ` Gene Heskett
2004-08-12  1:26                             ` Nick Piggin
2004-08-12  2:23                               ` Gene Heskett
2004-08-12  2:36                                 ` Nick Piggin
2004-08-13  1:00                           ` Udo A. Steinberg
2004-08-13  1:31                             ` Linus Torvalds
2004-08-13  2:03                               ` Gene Heskett
2004-08-13  2:27                               ` Andreas Dilger
2004-08-13  3:33                                 ` Linus Torvalds
2004-08-20  7:02                               ` Udo A. Steinberg
2004-08-20  7:11                                 ` Andrew Morton
2004-08-20  7:19                                   ` Udo A. Steinberg
2004-08-20  7:49                                     ` Nick Piggin
2004-08-24  6:08                                       ` Udo A. Steinberg
2004-08-24  7:41                                         ` Nick Piggin
2004-08-24 18:20                                           ` Marcelo Tosatti [this message]
2004-08-24 20:00                                             ` Andrew Morton
2004-08-24 18:40                                               ` Marcelo Tosatti
2004-08-25  0:27                                                 ` Marcelo Tosatti
2004-09-12  7:03                               ` Udo A. Steinberg
2004-09-12  7:16                                 ` Andrew Morton
2004-09-12  7:29                                   ` Udo A. Steinberg
2004-09-12  7:48                                     ` Andrew Morton
     [not found]                                       ` <20040912004812.3544c6de.akpm-3NddpPZAyC0@public.gmane.org>
2004-09-13  4:53                                         ` Len Brown
2004-09-13  4:53                                           ` Len Brown
2004-08-11  5:55                         ` David S. Miller
2004-08-11  4:47                     ` Gene Heskett
2004-08-11  4:59                       ` Linus Torvalds
2004-08-11  8:05                         ` Roger Luethi
2004-08-13  4:27                         ` Gene Heskett
2004-08-13  8:32                           ` Gene Heskett
2004-08-14  2:18                           ` Marcelo Tosatti
2004-08-14  5:19                             ` Gene Heskett
2004-08-14  5:50                             ` Gene Heskett
2004-08-14  8:17                             ` Gene Heskett
2004-08-15  4:09                               ` Gene Heskett
2004-08-15  8:48                                 ` viro
2004-08-15  9:42                                   ` Gene Heskett
2004-08-15 17:31                                     ` Andrew Morton
2004-08-15 17:58                                       ` Gene Heskett
2004-08-15  9:50                                   ` Gene Heskett
2004-08-15 10:36                                     ` viro
2004-08-15 10:10                                   ` Gene Heskett
2004-08-15 10:37                                     ` viro
2004-08-15 10:42                                       ` Gene Heskett
2004-08-15 11:00                                         ` viro
     [not found]                                       ` <200408150704.49312.gene.heskett@verizon.net>
2004-08-15 11:26                                         ` viro
2004-08-15 17:47                                           ` Gene Heskett
     [not found]                                             ` <200408152257.04773.vda@port.imtp.ilyichevsk.odessa.ua>
2004-08-15 20:33                                               ` Gene Heskett
     [not found]                                                 ` <200408160803.15206.vda@port.imtp.ilyichevsk.odessa.ua>
2004-08-16  6:32                                                   ` Gene Heskett
2004-08-16 14:13                                                     ` Gene Heskett
     [not found]                                                       ` <200408161749.23663.vda@port.imtp.ilyichevsk.odessa.ua>
2004-08-16 15:25                                                         ` Gene Heskett
2004-08-16 22:52                                   ` Gene Heskett
2004-08-16 23:01                                     ` viro
2004-08-17  4:44                                       ` Gene Heskett
2004-08-17  4:58                                         ` Nick Piggin
2004-08-17  5:26                                           ` Gene Heskett
2004-08-17 11:57                                             ` Nick Piggin
2004-08-19  9:41                                               ` Gene Heskett
2004-08-19 18:36                                                 ` Marcelo Tosatti
2004-08-20  2:38                                                   ` Gene Heskett
2004-08-20  7:33                                                     ` Marcelo Tosatti
2004-08-20 15:06                                                       ` Gene Heskett
2004-08-20 15:43                                                         ` V13
2004-08-20 17:29                                                           ` Gene Heskett
2004-08-20 18:13                                                             ` Marc Ballarin
2004-08-20 20:08                                                               ` Gene Heskett
2004-08-21  9:25                                                                 ` Barry K. Nathan
2004-08-21 18:31                                                                   ` V13
2004-08-21 18:55                                                                     ` Gene Heskett
2004-08-22 11:04                                                                       ` Helge Hafting
2004-08-22 11:40                                                                         ` Gene Heskett
2004-08-20 20:11                                                             ` R. J. Wysocki
2004-08-20 20:17                                                               ` Gene Heskett
2004-08-22  5:05                                                                 ` Gene Heskett
2004-08-22 11:42                                                                   ` R. J. Wysocki
2004-08-24  2:34                                                                   ` Tom Vier
2004-08-24  3:08                                                                     ` Gene Heskett
2004-08-25  1:49                                                                       ` Tom Vier
2004-08-25  2:33                                                                         ` Gene Heskett
2004-08-25 14:55                                                                           ` Martin J. Bligh
2004-08-25 17:23                                                                             ` Ryan Cumming
2004-08-25 17:36                                                                               ` Martin J. Bligh
2004-08-27 14:01                                                                           ` Gene Heskett
2004-08-25  6:13                                                                         ` Denis Vlasenko
2004-08-29 13:48                                                                           ` Gene Heskett
2004-08-29 14:34                                                                             ` Possible dcache BUG [u] Martin Schlemmer [c]
2004-08-29 15:21                                                                             ` Possible dcache BUG Rafael J. Wysocki
2004-08-29 17:23                                                                               ` Denis Vlasenko
2004-08-29 22:25                                                                                 ` Gene Heskett
  -- strict thread matches above, loose matches on Subject: below --
2004-08-05 14:54 Brett Charbeneau
     [not found] <2oKTA-5CQ-65@gated-at.bofh.it>
     [not found] ` <2r0U7-3yx-9@gated-at.bofh.it>
     [not found]   ` <2rwhh-BX-15@gated-at.bofh.it>
     [not found]     ` <2rShM-7QP-5@gated-at.bofh.it>
     [not found]       ` <2rSrs-7Vn-1@gated-at.bofh.it>
     [not found]         ` <2rSUw-8lw-3@gated-at.bofh.it>
     [not found]           ` <2rTGR-se-3@gated-at.bofh.it>
     [not found]             ` <2rUjF-Od-11@gated-at.bofh.it>
2004-08-11 12:32               ` Andi Kleen
2004-08-20  8:08 Daniel Blueman

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=20040824182036.GB8806@logos.cnet \
    --to=marcelo.tosatti@cyclades.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=torvalds@osdl.org \
    --cc=us15@os.inf.tu-dresden.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.