Hi
SLUB: Unable to allocate memory on node -1 (gfp=11200)
cache: kmalloc-2048, object size: 2048, buffer size: 2048, default
order: 3, min order: 0
node 0: slabs: 407, objs: 1724, free: 0
SLUB: Unable to allocate memory on node -1 (gfp=11200)
cache: kmalloc-2048, object size: 2048, buffer size: 2048, default
order: 3, min order: 0
node 0: slabs: 407, objs: 1724, free: 0
It is 4-way (2*2) SMP with 2Gb RAM
After ohe hour:
SysRq : Show Memory
Mem-Info:
DMA per-cpu:
CPU 0: hi: 0, btch: 1 usd: 0
CPU 1: hi: 0, btch: 1 usd: 0
CPU 2: hi: 0, btch: 1 usd: 0
CPU 3: hi: 0, btch: 1 usd: 0
DMA32 per-cpu:
CPU 0: hi: 186, btch: 31 usd: 33
CPU 1: hi: 186, btch: 31 usd: 6
CPU 2: hi: 186, btch: 31 usd: 32
CPU 3: hi: 186, btch: 31 usd: 128
Active_anon:17806 active_file:125950 inactive_anon:867
inactive_file:184832 unevictable:0 dirty:6551 writeback:0 unstable:0
free:114704 slab:50538 mapped:1397 pagetables:488 bounce:0
DMA free:11688kB min:28kB low:32kB high:40kB active_anon:0kB
inactive_anon:0kB active_file:32kB inactive_file:120kB unevictable:0kB
present:11072kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 1975 1975 1975
DMA32 free:443780kB min:5672kB low:7088kB high:8508kB
active_anon:74536kB inactive_anon:3468kB active_file:503768kB
inactive_file:739208kB unevictable:0kB present:2023256kB
pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA: 18*4kB 8*8kB 10*16kB 10*32kB 9*64kB 8*128kB 5*256kB 4*512kB
2*1024kB 0*2048kB 1*4096kB = 11688kB
DMA32: 13673*4kB 20022*8kB 12589*16kB 832*32kB 3*64kB 0*128kB 0*256kB
1*512kB 0*1024kB 0*2048kB 0*4096kB = 443620kB
310848 total pagecache pages
56 pages in swap cache
Swap cache stats: add 736, delete 680, find 10/15
Free swap = 3909060kB
Total swap = 3911788kB
523088 pages RAM
24077 pages reserved
230011 pages shared
162325 pages non-shared
On Thu, Jun 11, 2009 at 4:03 PM, Alexander
Beregalov<[email protected]> wrote:
> Hi
There should be a stack trace here printed out by the page allocator.
Can you post that too?
> SLUB: Unable to allocate memory on node -1 (gfp=11200)
> ?cache: kmalloc-2048, object size: 2048, buffer size: 2048, default
> order: 3, min order: 0
> ?node 0: slabs: 407, objs: 1724, free: 0
> SLUB: Unable to allocate memory on node -1 (gfp=11200)
> ?cache: kmalloc-2048, object size: 2048, buffer size: 2048, default
> order: 3, min order: 0
> ?node 0: slabs: 407, objs: 1724, free: 0
>
> It is 4-way (2*2) SMP with 2Gb RAM
2009/6/11 Pekka Enberg <[email protected]>:
> On Thu, Jun 11, 2009 at 4:03 PM, Alexander
> Beregalov<[email protected]> wrote:
>> Hi
>
> There should be a stack trace here printed out by the page allocator.
> Can you post that too?
I do not see it:
[ 1626.596025] git used greatest stack depth: 1864 bytes left
[ 2396.398829] pdflush used greatest stack depth: 1696 bytes left
[ 7378.179886] SLUB: Unable to allocate memory on node -1 (gfp=11200)
[ 7378.182599] cache: kmalloc-2048, object size: 2048, buffer size:
2048, default order: 3, min order: 0
[ 7378.182599] node 0: slabs: 407, objs: 1724, free: 0
[ 7378.426463] SLUB: Unable to allocate memory on node -1 (gfp=11200)
[ 7378.429764] cache: kmalloc-2048, object size: 2048, buffer size:
2048, default order: 3, min order: 0
[ 7378.429764] node 0: slabs: 407, objs: 1724, free: 0
[11541.347736] SysRq : Show Memory
On Thu, 11 Jun 2009, Alexander Beregalov wrote:
> > There should be a stack trace here printed out by the page allocator.
> > Can you post that too?
>
> I do not see it:
Aah, it's a false positive. The following patch ought to fix it.
Pekka
>From d3b9557331bf4b73b80632b15eed062bf30683ac Mon Sep 17 00:00:00 2001
From: Pekka Enberg <[email protected]>
Date: Thu, 11 Jun 2009 16:18:09 +0300
Subject: [PATCH] SLUB: Don't print out OOM warning for __GFP_NOFAIL
We must check for __GFP_NOFAIL like the page allocator does; otherwise we end
up with false positives. While at it, add the printk_ratelimit() check in SLUB
as well.
Cc: Alexander Beregalov <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
mm/slub.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/mm/slub.c b/mm/slub.c
index c0d5341..4d7cabf 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1631,7 +1631,8 @@ new_slab:
c->page = new;
goto load_freelist;
}
- slab_out_of_memory(s, gfpflags, node);
+ if (!(gfpflags & __GFP_NOWARN) && printk_ratelimit())
+ slab_out_of_memory(s, gfpflags, node);
return NULL;
debug:
if (!alloc_debug_processing(s, c->page, object, addr))
--
1.6.0.4