* 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
* Re: ubiformat: libmtd: error 12 (Cannot allocate memory): on system with limited RAM
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
1 sibling, 0 replies; 3+ messages in thread
From: Artem Bityutskiy @ 2011-04-07 10:34 UTC (permalink / raw)
To: Bastian.Ruppert; +Cc: Grant Erickson, linux-mtd
On Thu, 2011-04-07 at 12:20 +0200, Bastian.Ruppert@sewerin.de wrote:
> 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)
This is an allocation failure inside the kernel, in mtd_write(). This is
exactly what Grant Erickson is fixing. He sent the patch recently, but I
found few minor issue and asked him to re-send.
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: ubiformat: libmtd: error 12 (Cannot allocate memory): on system with limited RAM
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
1 sibling, 0 replies; 3+ messages in thread
From: Artem Bityutskiy @ 2011-04-08 14:02 UTC (permalink / raw)
To: Bastian.Ruppert; +Cc: linux-mtd
On Thu, 2011-04-07 at 12:20 +0200, Bastian.Ruppert@sewerin.de wrote:
> Hello,
>
> i have problems writing an image with ubiformat in an environment with
> limited RAM.
BTW, this fix was pushed to my l2 tree, you can find it here:
git://git.infradead.org/users/dedekind/l2-mtd-2.6.git
"mtd: retry large buffer allocations"
Please, test and let us know if it helps you.
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
^ 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