From: Matthieu CASTET <matthieu.castet@parrot.com>
To: linux-mtd@lists.infradead.org
Cc: David Woodhouse <dwmw2@infradead.org>
Subject: jffs2 memory usage and OOM killer
Date: Mon, 28 May 2007 09:50:46 +0200 [thread overview]
Message-ID: <465A89D6.2050708@parrot.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 847 bytes --]
Hi,
On a system with 16 MB of ram (6700KB free at the time of mounting), I
have a 50 MB jffs2 partition with a big file on it (30 MB). This file
was uploaded with xmodem, and a dump of the partition show that the
inode node are very small (128 o).
After the file was uploaded on the jffs2 partition and a reboot :
if I do a rw mount, the partition is mounted, but jffs2 memory usage
increase until it eats all the memory and the system die (see jffs2_oom1
attachement).
if I do a ro mount, the partition is mounted (use 2MB of RAM), but if I
list directory, jffs2 start to eat all memory until OOM killer is called
(see jffs2_oom attachement).
I know that jffs2 eats some memory, but I am impressed that it can eat
so much memory.
Matthieu
PS : The ML keep think that the "Message has a
suspicious header", even after several retry.
[-- Attachment #2: jffs2_oom --]
[-- Type: text/plain, Size: 15665 bytes --]
# free
total used free shared buffers
Mem: 13948 7168 6780 0 0
Swap: 0 0 0
Total: 13948 7168 6780
#
#
#
#
# mount /dev/mtdblock3 /mnt/ -o ro -t jffs2
# free
total used free shared buffers
Mem: 13948 9712 4236 0 0
Swap: 0 0 0
Total: 13948 9712 4236
# free
total used free shared buffers
Mem: 13948 9712 4236 0 0
Swap: 0 0 0
Total: 13948 9712 4236
# free
total used free shared buffers
Mem: 13948 9712 4236 0 0
Swap: 0 0 0
Total: 13948 9712 4236
# ls /mnt/
[ 71.110000] [<c00261b0>] (dump_stack+0x0/0x14) from [<c005d444>] (out_of_memory+0x78/0x204)
[ 71.115000] [<c005d3cc>] (out_of_memory+0x0/0x204) from [<c005ed94>] (__alloc_pages+0x228/0x2a4)
[ 71.125000] r8 = 00000000 r7 = C02C6580 r6 = 000000D0 r5 = 00000000
[ 71.130000] r4 = 00000000
[ 71.135000] [<c005eb6c>] (__alloc_pages+0x0/0x2a4) from [<c0074b34>] (cache_alloc_refill+0x2e0/0x5a4)
[ 71.140000] [<c0074854>] (cache_alloc_refill+0x0/0x5a4) from [<c0074848>] (kmem_cache_alloc+0x5c/0x68)
[ 71.150000] [<c00747ec>] (kmem_cache_alloc+0x0/0x68) from [<c00c2f90>] (jffs2_alloc_tmp_dnode_info+0x1c/0x24)
[ 71.160000] r6 = C000909C r5 = 00000200 r4 = 75AE4D26
[ 71.165000] [<c00c2f74>] (jffs2_alloc_tmp_dnode_info+0x0/0x24) from [<c00c4ea8>] (jffs2_do_read_inode_internal+0x964/0x167c)
[ 71.180000] [<c00c4544>] (jffs2_do_read_inode_internal+0x0/0x167c) from [<c00c5e78>] (jffs2_do_read_inode+0x20c/0x228)
[ 71.190000] [<c00c5c6c>] (jffs2_do_read_inode+0x0/0x228) from [<c00cd07c>] (jffs2_read_inode+0x78/0x334)
[ 71.200000] [<c00cd004>] (jffs2_read_inode+0x0/0x334) from [<c00bfc84>] (jffs2_lookup+0x128/0x16c)
[ 71.210000] [<c00bfb5c>] (jffs2_lookup+0x0/0x16c) from [<c007fecc>] (do_lookup+0xbc/0x184)
[ 71.215000] [<c007fe10>] (do_lookup+0x0/0x184) from [<c0081c14>] (__link_path_walk+0xa90/0x103c)
[ 71.225000] [<c0081184>] (__link_path_walk+0x0/0x103c) from [<c008224c>] (link_path_walk+0x8c/0x154)
[ 71.235000] [<c00821c0>] (link_path_walk+0x0/0x154) from [<c00827a0>] (do_path_lookup+0x2e0/0x308)
[ 71.245000] r8 = 00000001 r7 = C0921000 r6 = C0903EC8 r5 = 00000000
[ 71.250000] r4 = C02AD3A0
[ 71.255000] [<c00824c0>] (do_path_lookup+0x0/0x308) from [<c00830bc>] (__user_walk_fd+0x44/0x64)
[ 71.260000] [<c0083078>] (__user_walk_fd+0x0/0x64) from [<c007b9c0>] (vfs_lstat_fd+0x24/0x54)
[ 71.270000] r7 = 000000C4 r6 = 0008387D r5 = C0903EC8 r4 = C0903F40
[ 71.275000] [<c007b99c>] (vfs_lstat_fd+0x0/0x54) from [<c007ba58>] (vfs_lstat+0x1c/0x20)
[ 71.285000] r5 = BEFCB970 r4 = C0903F40
[ 71.290000] [<c007ba3c>] (vfs_lstat+0x0/0x20) from [<c007ba7c>] (sys_lstat64+0x20/0x44)
[ 71.300000] [<c007ba5c>] (sys_lstat64+0x0/0x44) from [<c0021e60>] (ret_fast_syscall+0x0/0x2c)
[ 71.305000] r5 = 00000000 r4 = 00083878
[ 71.310000] Mem-info:
[ 71.315000] DMA per-cpu:
[ 71.315000] CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
[ 71.320000] Active:70 inactive:0 dirty:0 writeback:0 unstable:0 free:127 slab:2331 mapped:0 pagetables:9
[ 71.325000] DMA free:508kB min:508kB low:632kB high:760kB active:280kB inactive:0kB present:16256kB pages_scanned:504 all_us
[ 71.330000] lowmem_reserve[]: 0 0
[ 71.335000] DMA: 1*4kB 1*8kB 1*16kB 1*32kB 1*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 508kB
[ 71.345000] Swap cache: add 0, delete 0, find 0/0, race 0+0
[ 71.350000] Free swap = 0kB
[ 71.355000] Total swap = 0kB
[ 71.355000] Free swap: 0kB
[ 71.360000] 4096 pages of RAM
[ 71.365000] 154 free pages
[ 71.365000] 1360 reserved pages
[ 71.370000] 2331 slab pages
[ 71.370000] 23 pages shared
[ 71.375000] 0 pages swap cached
[ 71.380000] Out of memory: kill process 709 (sh) score 29 or a child
[ 71.385000] Killed process 725 (sh)
[ 72.455000] sh: page allocation failure. order:0, mode:0xd0
[ 72.455000] [<c00261b0>] (dump_stack+0x0/0x14) from [<c005edfc>] (__alloc_pages+0x290/0x2a4)
[ 72.465000] [<c005eb6c>] (__alloc_pages+0x0/0x2a4) from [<c0074b34>] (cache_alloc_refill+0x2e0/0x5a4)
[ 72.470000] [<c0074854>] (cache_alloc_refill+0x0/0x5a4) from [<c0074848>] (kmem_cache_alloc+0x5c/0x68)
[ 72.480000] [<c00747ec>] (kmem_cache_alloc+0x0/0x68) from [<c00c2ffc>] (jffs2_alloc_full_dnode+0x1c/0x24)
[ 72.490000] r6 = C00091D4 r5 = 00000200 r4 = 00000080
[ 72.495000] [<c00c2fe0>] (jffs2_alloc_full_dnode+0x0/0x24) from [<c00c50e0>] (jffs2_do_read_inode_internal+0xb9c/0x167c)
[ 72.505000] [<c00c4544>] (jffs2_do_read_inode_internal+0x0/0x167c) from [<c00c5e78>] (jffs2_do_read_inode+0x20c/0x228)
[ 72.520000] [<c00c5c6c>] (jffs2_do_read_inode+0x0/0x228) from [<c00cd07c>] (jffs2_read_inode+0x78/0x334)
[ 72.530000] [<c00cd004>] (jffs2_read_inode+0x0/0x334) from [<c00bfc84>] (jffs2_lookup+0x128/0x16c)
[ 72.535000] [<c00bfb5c>] (jffs2_lookup+0x0/0x16c) from [<c007fecc>] (do_lookup+0xbc/0x184)
[ 72.545000] [<c007fe10>] (do_lookup+0x0/0x184) from [<c0081c14>] (__link_path_walk+0xa90/0x103c)
[ 72.555000] [<c0081184>] (__link_path_walk+0x0/0x103c) from [<c008224c>] (link_path_walk+0x8c/0x154)
[ 72.565000] [<c00821c0>] (link_path_walk+0x0/0x154) from [<c00827a0>] (do_path_lookup+0x2e0/0x308)
[ 72.575000] r8 = 00000001 r7 = C0921000 r6 = C0903EC8 r5 = 00000000
[ 72.580000] r4 = C02AD3A0
[ 72.580000] [<c00824c0>] (do_path_lookup+0x0/0x308) from [<c00830bc>] (__user_walk_fd+0x44/0x64)
[ 72.590000] [<c0083078>] (__user_walk_fd+0x0/0x64) from [<c007b9c0>] (vfs_lstat_fd+0x24/0x54)
[ 72.600000] r7 = 000000C4 r6 = 0008387D r5 = C0903EC8 r4 = C0903F40
[ 72.605000] [<c007b99c>] (vfs_lstat_fd+0x0/0x54) from [<c007ba58>] (vfs_lstat+0x1c/0x20)
[ 72.615000] r5 = BEFCB970 r4 = C0903F40
[ 72.620000] [<c007ba3c>] (vfs_lstat+0x0/0x20) from [<c007ba7c>] (sys_lstat64+0x20/0x44)
[ 72.625000] [<c007ba5c>] (sys_lstat64+0x0/0x44) from [<c0021e60>] (ret_fast_syscall+0x0/0x2c)
[ 72.635000] r5 = 00000000 r4 = 00083878
[ 72.640000] Mem-info:
[ 72.640000] DMA per-cpu:
[ 72.645000] CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
[ 72.650000] Active:70 inactive:0 dirty:0 writeback:0 unstable:0 free:0 slab:2458 mapped:0 pagetables:9
[ 72.655000] DMA free:0kB min:508kB low:632kB high:760kB active:280kB inactive:0kB present:16256kB pages_scanned:565 all_unrs
[ 72.660000] lowmem_reserve[]: 0 0
[ 72.665000] DMA: 0*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 0kB
[ 72.675000] Swap cache: add 0, delete 0, find 0/0, race 0+0
[ 72.680000] Free swap = 0kB
[ 72.680000] Total swap = 0kB
[ 72.685000] Free swap: 0kB
[ 72.690000] 4096 pages of RAM
[ 72.690000] 27 free pages
[ 72.695000] 1360 reserved pages
[ 72.695000] 2458 slab pages
[ 72.700000] 23 pages shared
[ 72.705000] 0 pages swap cached
[ 72.705000] JFFS2 error: (725) read_dnode: alloc fn failed
[ 72.970000] JFFS2 error: (725) jffs2_do_read_inode_internal: cannot read nodes for ino 2, returned error is -12
Killed
#
# ls /mnt/
ls: /mnt/luxo-jr.mpg: Input/output error
# free
total used free shared buffers
Mem: 13948 9604 4344 0 0
Swap: 0 0 0
Total: 13948 9604 4344
[-- Attachment #3: jffs2_oom1 --]
[-- Type: text/plain, Size: 8665 bytes --]
# mount /dev/mtdblock3 /mnt/ -t jffs2
# [ 1333.055000] sh invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
[ 1333.055000] [<c00261b0>] (dump_stack+0x0/0x14) from [<c005d444>] (out_of_memory+0x78/0x204)
[ 1333.060000] [<c005d3cc>] (out_of_memory+0x0/0x204) from [<c005ed94>] (__alloc_pages+0x228/0x2a4)
[ 1333.070000] r8 = 00000000 r7 = C0293040 r6 = 000201D2 r5 = 00000000
[ 1333.080000] jffs2_gcd_mtd3 invoked oom-killer: gfp_mask=0xd0, order=0, oomkilladj=0
[ 1333.085000] [<c00261b0>] (dump_stack+0x0/0x14) from [<c005d444>] (out_of_memory+0x78/0x204)
[ 1333.095000] [<c005d3cc>] (out_of_memory+0x0/0x204) from [<c005ed94>] (__alloc_pages+0x228/0x2a4)
[ 1333.105000] r8 = 00000000 r7 = C02C6040 r6 = 000000D0 r5 = 00000000
[ 1333.110000] r4 = 00000000
[ 1333.115000] [<c005eb6c>] (__alloc_pages+0x0/0x2a4) from [<c0074b34>] (cache_alloc_refill+0x2e0/0x5a4)
[ 1333.120000] [<c0074854>] (cache_alloc_refill+0x0/0x5a4) from [<c0074848>] r4 = 00000000
[ 1333.130000] [<c005eb6c>] (__alloc_pages+0x0/0x2a4) from [<c0060c28>] (__do_page_cache_readahead+0x104/0x2b0)
[ 1333.140000] [<c0060b24>] (__do_page_cache_readahead+0x0/0x2b0) from [<c006116c>] (do_page_cache_readahead+0x60/0x6c)
[ 1333.150000] [<c006110c>] (do_page_cache_readahead+0x0/0x6c) from [<c005c3fc>] (filemap_nopage+0x1a0/0x42c)
[ 1333.160000] r7 = 00000003 r6 = C02B0BA0 r5 = 00000000 r4 = 00000000
[ 1333.165000] [<c005c25c>] (filemap_nopage+0x0/0x42c) from [<c00681bc>] (__handle_mm_fault+0x168/0xae8)
[ 1333.175000] [<c0068054>] (__handle_mm_fault+0x0/0xae8) from [<c0027c18>] (do_page_fault+0xec/0x238)
[ 1333.185000] [<c0027b2c>] (do_page_fault+0x0/0x238) from [<c0027e18>] (do_translation_fault+0x20/0x80)
[ 1333.195000] [<c0027df8>] (do_translation_fault+0x0/0x80) from [<c0027e90>] (do_PrefetchAbort+0x18/0x1c)
[ 1333.205000] r5 = 0007F678 r4 = FFFFFFFF
[ 1333.210000] [<c0027e78>] (do_PrefetchAbort+0x0/0x1c) from [<c0021e08>] (ret_from_exception+0x0/0x10)
[ 1333.220000] Mem-info:
[ 1333.220000] DMA per-cpu:
[ 1333.225000] CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
[ 1333.230000] (kmem_cache_alloc+0x5c/0x68)
[ 1333.235000] [<c00747ec>] (kmem_cache_alloc+0x0/0x68) from [<c00c2f90>] (jffs2_alloc_tmp_dnode_info+0x1c/0x24)
[ 1333.245000] r6 = C00094E8 r5 = 00000200 r4 = 75AE4D26
[ 1333.250000] [<c00c2f74>] (jffs2_alloc_tmp_dnode_info+0x0/0x24) from [<c00c4ea8>] (jffs2_do_read_inode_internal+0x964/0x167c)
[ 1333.260000] [<c00c4544>] (jffs2_do_read_inode_internal+0x0/0x167c) from [<c00c5c1c>] (jffs2_do_crccheck_inode+0x5c/0xac)
[ 1333.275000] [<c00c5bc0>] (jffs2_do_crccheck_inode+0x0/0xac) Active:56 inactive:0 dirty:0 writeback:0 unstable:0 free:127 sl6
[ 1333.285000] DMA free:508kB min:508kB low:632kB high:760kB active:224kB inactive:0kB present:16256kB pages_scanned:819 all_us
[ 1333.290000] lowmem_reserve[]: 0 0
[ 1333.295000] DMA: 1*4kB 1*8kB 1*16kB 1*32kB 1*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 508kB
[ 1333.305000] Swap cache: add 0, delete 0, find 0/0, race 0+0
[ 1333.310000] Free swap = 0kB
[ 1333.310000] Total swap = 0kB
[ 1333.315000] Free swap: 0kB
[ 1333.320000] 4096 pages of RAM
[ 1333.320000] 151 free pages
[ 1333.325000] 1360 reserved pages
[ 1333.325000] 2321 slab pages
[ 1333.330000] 0 pages shared
[ 1333.335000] 0 pages swap cached
[ 1333.335000] Out of memory: kill process 709 (sh) score 19 or a child
[ 1333.345000] Killed process 709 (sh)
[ 1333.510000] r7 = C0F8B400 r6 = 00000001 r5 = C04B2000 r4 = C0FEE560
[ 1333.510000] [<c00c942c>] (jffs2_garbage_collect_pass+0x0/0x191c) from [<c00cc020>] (jffs2_garbage_collect_thread+0x12c/0x18)
[ 1333.520000] [<c00cbef4>] (jffs2_garbage_collect_thread+0x0/0x188) from [<c0037424>] (do_exit+0x0/0x8b0)
[ 1333.530000] r7 = 00000000 r6 = 00000000 r5 = 00000000 r4 = 00000000
[ 1333.535000] Mem-info:
[ 1333.540000] DMA per-cpu:
[ 1333.540000] CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
[ 1333.545000] Active:21 inactive:31 dirty:0 writeback:0 unstable:0 free:165 slab:2322 mapped:0 pagetables:3
[ 1333.550000] DMA free:660kB min:508kB low:632kB high:760kB active:84kB inactive:124kB present:16256kB pages_scanned:0 all_uno
[ 1333.555000] lowmem_reserve[]: 0 0
[ 1333.660000] DMA: 7*4kB 14*8kB 2*16kB 0*32kB 0*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 684kB
[ 1333.665000] Swap cache: add 0, delete 0, find 0/0, race 0+0
[ 1333.670000] Free swap = 0kB
[ 1333.670000] Total swap = 0kB
[ 1333.675000] Free swap: 0kB
[ 1333.680000] 4096 pages of RAM
[ 1333.680000] 191 free pages
[ 1333.685000] 1360 reserved pages
[ 1333.685000] 2322 slab pages
[ 1333.690000] 9 pages shared
[ 1333.690000] 0 pages swap cached
[ 1333.695000] Kernel panic - not syncing: Out of memory and no killable processes...
next reply other threads:[~2007-05-28 7:54 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-28 7:50 Matthieu CASTET [this message]
2007-05-30 10:01 ` jffs2 memory usage and OOM killer Matthieu CASTET
2007-05-31 12:05 ` David Woodhouse
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=465A89D6.2050708@parrot.com \
--to=matthieu.castet@parrot.com \
--cc=dwmw2@infradead.org \
--cc=linux-mtd@lists.infradead.org \
/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.