public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* ubiformat: libmtd: error 12 (Cannot allocate memory): on system with limited RAM
@ 2011-04-07 10:20 Bastian.Ruppert
  2011-04-07 10:34 ` Artem Bityutskiy
  2011-04-08 14:02 ` Artem Bityutskiy
  0 siblings, 2 replies; 3+ messages in thread
From: Bastian.Ruppert @ 2011-04-07 10:20 UTC (permalink / raw)
  To: linux-mtd; +Cc: Bastian.Ruppert

Hello,

i have problems writing an image with ubiformat in an environment with 
limited RAM.

The system is a TI OMAPL138 ARM9 with a 2.6.38-rc6-00071-gb9b65a4 kernel.

git log in mtd-utils:
commit a70811466de2c4c0c3a538e5e04a4dd1a8fbcc03
Author: Andy Shevchenko <ext-andriy.shevchenko@nokia.com>
Date:   Tue Apr 5 17:32:29 2011 +0300


The following command is working fine with say MEM=72M for the linux 
kernel, and 
the content in the ubi image can be mounted successfully after flashing.

./ubiformat /dev/mtd3 -f image.ubi -S 19660800

But with less memory, say 32M the following error occurs:

-bash-3.2# ./ubiformat /dev/mtd3 -f image.ubi -S 19660800
ubiformat: mtd3 (nand), size 79691776 bytes (76.0 MiB), 608 eraseblocks of 
131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 607 -- 100 % complete 
ubiformat: 607 eraseblocks have valid erase counter, mean value is 3
ubiformat: 1 eraseblocks are supposedly empty
ubiformat: flashing eraseblock 35 -- 24 % complete  ubiformat: page 
allocation failure. order:5, mode:0x40d0
[<c0034838>] (unwind_backtrace+0x0/0xf0) from [<c007f730>] 
(__alloc_pages_nodemask+0x590/0x60c)
[<c007f730>] (__alloc_pages_nodemask+0x590/0x60c) from [<c007f7c0>] 
(__get_free_pages+0x14/0x44)
[<c007f7c0>] (__get_free_pages+0x14/0x44) from [<c01e2db4>] 
(mtd_write+0x8c/0x230)
[<c01e2db4>] (mtd_write+0x8c/0x230) from [<c00a38f8>] 
(vfs_write+0xb0/0x13c)
[<c00a38f8>] (vfs_write+0xb0/0x13c) from [<c00a3e8c>] 
(sys_write+0x3c/0x68)
[<c00a3e8c>] (sys_write+0x3c/0x68) from [<c002ffa0>] 
(ret_fast_syscall+0x0/0x2c)
Mem-info:
DMA per-cpu:
CPU    0: hi:    0, btch:   1 usd:   0
active_anon:345 inactive_anon:0 isolated_anon:0
 active_file:1600 inactive_file:3038 isolated_file:0
 unevictable:0 dirty:0 writeback:1 unstable:0
 free:702 slab_reclaimable:239 slab_unreclaimable:543
 mapped:379 shmem:0 pagetables:33 bounce:0
DMA free:2788kB min:720kB low:900kB high:1080kB active_anon:1380kB 
inactive_anon:0kB active_file:6400kB inactive_file:12152kB unevictable:0kB 
isolated(anon):0kB isolated(file):0kB present:32512kB mlocked:0kB 
dirty:0kB writeback:4kB mapped:1516kB shmem:0kB slab_reclaimable:956kB 
slab_unreclaimable:2192kB kernel_stack:320kB pagetables:132kB unstable:0kB 
bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
DMA: 266*4kB 19*8kB 20*16kB 11*32kB 8*64kB 3*128kB 0*256kB 0*512kB 
0*1024kB 0*2048kB 0*4096kB = 2784kB
4638 total pagecache pages
8192 pages of RAM
763 free pages
1104 reserved pages
569 slab pages
1020 pages shared
0 pages swap cached
libmtd: error!: cannot write 131072 bytes to mtd3 (eraseblock 35, offset 
0)
        error 12 (Cannot allocate memory)
ubiformat: error!: cannot write eraseblock 35
           error 12 (Cannot allocate memory)
-bash-3.2# 

It seems that in ./ubi-utils/src/ubiformat.c:541 the function mtd_write 
returns
the error.
Is it possible to free some memory before writing the next page to get rid 
of 
the memory problem?

Best regards,

Bastian Ruppert.

... please put me to CC in response to this message.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-04-08 14:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-07 10:20 ubiformat: libmtd: error 12 (Cannot allocate memory): on system with limited RAM Bastian.Ruppert
2011-04-07 10:34 ` Artem Bityutskiy
2011-04-08 14:02 ` Artem Bityutskiy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox