From: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
To: Andrew Morton <akpm@osdl.org>
Cc: nickpiggin@yahoo.com.au, us15@os.inf.tu-dresden.de,
torvalds@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: Possible dcache BUG
Date: Tue, 24 Aug 2004 21:27:09 -0300 [thread overview]
Message-ID: <20040825002709.GB11484@logos.cnet> (raw)
In-Reply-To: <20040824184015.GD8806@logos.cnet>
[-- Attachment #1: Type: text/plain, Size: 3565 bytes --]
I suppose your question is not "_why_ all_unreclaimable is getting set?" but
> "maybe it should not be getting set?".
Now I realize both are the same. Doh.
> Anyway, will RTFS.
Done some tests and I can only get zone->all_unreclaimable to be set near
OOM condition, as expected.
Udo, can you please confirm you are not hitting lack of swap space by applying
the attached patch (which contains Nick's patch) on top of 2.6.9-rc1.
I've found a different bug, however: On a 512MB box with 512MB swap running 2.6.9-rc1,
the OOM kill triggers killing a task with swap space available (the task in case is quintela's
fillmem). I can only make it happen after having the OOM killer trigger for real. ie:
- run fillmem 1024
setting all_unreclaimable!!
setting all_unreclaimable!!
setting all_unreclaimable!!
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 32, high 96, batch 16
cpu 0 cold: low 0, high 32, batch 16
HighMem per-cpu: empty
Free pages: 2808kB (0kB HighMem)
Active:63316 inactive:62992 dirty:0 writeback:0 unstable:0 free:702 slab:1051 mapped:126279 pagetables:287
DMA free:1440kB min:20kB low:40kB high:60kB active:5428kB inactive:5076kB present:16384kB pages_scanned:8416 all_unreclaimable? yes
protections[]: 10 360 360
Normal free:1368kB min:700kB low:1400kB high:2100kB active:247836kB inactive:246892kB present:507888kB pages_scanned:950688 all_unreclaimable? yes
protections[]: 0 350 350
protections[]: 0 350 350
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 0*8kB 0*16kB 1*32kB 2*64kB 0*128kB 1*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 1440kB
Normal: 0*4kB 1*8kB 1*16kB 0*32kB 1*64kB 0*128kB 1*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 1368kB
HighMem: empty
nr_free_swap_pages: 0
Swap cache: add 131105, delete 131105, find 16/28, race 0+0
Out of Memory: Killed process 933 (fillmem).
Perfect. Everything as expected.
- run fillmem 800:
setting all_unreclaimable!!
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 32, high 96, batch 16
cpu 0 cold: low 0, high 32, batch 16
HighMem per-cpu: empty
Free pages: 2808kB (0kB HighMem)
Active:126301 inactive:17 dirty:0 writeback:0 unstable:0 free:702 slab:1024 mapped:126333 pagetables:280
DMA free:1440kB min:20kB low:40kB high:60kB active:10508kB inactive:0kB present:16384kB pages_scanned:1000 all_unreclaimable? no
protections[]: 10 360 360
Normal free:1368kB min:700kB low:1400kB high:2100kB active:494696kB inactive:68kB present:507888kB pages_scanned:123 all_unreclaimable? no
protections[]: 0 350 350
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 2*8kB 3*16kB 3*32kB 0*64kB 0*128kB 1*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 1440kB
Normal: 0*4kB 1*8kB 1*16kB 0*32kB 1*64kB 0*128kB 1*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 1368kB
HighMem: empty
nr_free_swap_pages: 12167
Swap cache: add 1320161, delete 1319682, find 291280/333316, race 0+0
Out of Memory: Killed process 1010 (fillmem).
Oops. Thats really bad.
Will see if I discover something while trying to understand the
fine source tomorrow morning. Maybe someone can figure out whats
wrong before I try to...
Bed time.
[-- Attachment #2: vm-reclaim2.patch --]
[-- Type: text/plain, Size: 1331 bytes --]
--- mm/page_alloc.c.orig 2004-08-24 20:37:53.000000000 -0300
+++ mm/page_alloc.c 2004-08-24 22:51:49.498375608 -0300
@@ -1021,11 +1021,12 @@
void show_free_areas(void)
{
struct page_state ps;
- int cpu, temperature;
+ int cpu, temperature, i;
unsigned long active;
unsigned long inactive;
unsigned long free;
struct zone *zone;
+ unsigned int swap_pages = 0;
for_each_zone(zone) {
show_node(zone);
@@ -1086,6 +1087,8 @@
" active:%lukB"
" inactive:%lukB"
" present:%lukB"
+ " pages_scanned:%lu"
+ " all_unreclaimable? %s"
"\n",
zone->name,
K(zone->free_pages),
@@ -1094,7 +1097,9 @@
K(zone->pages_high),
K(zone->nr_active),
K(zone->nr_inactive),
- K(zone->present_pages)
+ K(zone->present_pages),
+ zone->pages_scanned,
+ (zone->all_unreclaimable ? "yes" : "no")
);
printk("protections[]:");
for (i = 0; i < MAX_NR_ZONES; i++)
@@ -1125,6 +1130,18 @@
printk("= %lukB\n", K(total));
}
+ swap_list_lock();
+ for (i = 0; i < nr_swapfiles; i++) {
+ if (!(swap_info[i].flags & SWP_USED) ||
+ (swap_info[i].flags & SWP_WRITEOK))
+ continue;
+ swap_pages += swap_info[i].inuse_pages;
+ }
+ swap_pages += nr_swap_pages;
+ swap_list_unlock();
+
+ printk("nr_free_swap_pages: %u\n", swap_pages);
+
show_swap_cache_info();
}
next prev parent reply other threads:[~2004-08-25 2:06 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
2004-08-24 20:00 ` Andrew Morton
2004-08-24 18:40 ` Marcelo Tosatti
2004-08-25 0:27 ` Marcelo Tosatti [this message]
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=20040825002709.GB11484@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.