First access to mounted jffs2 partition is slow
DMcLeod
dmcleod at bittware.com
Tue Feb 12 12:21:43 EST 2008
Will Wagner wrote:
> Hello,
>
> I have an ARM11 system with a JFFS2 partition in NAND flash. It works
> but the first time it is accessed after mounting it can be very slow.
>
> These are the steps I am performing:
>
> # flash_eraseall /dev/mtd4
> Erasing 128 Kibyte @ 5fe0000 -- 99 % complete.
> # time mount /dev/mtdblock4 /flash -t jffs2
> real 0m 1.25s
> user 0m 0.01s
> sys 0m 0.13s
> # time ls flash - with an empty filsystem, this takes no time
> real 0m 0.00s
> user 0m 0.01s
> sys 0m 0.00s
> # cp /sdcard/bigfile flash/ - bigfile is ~8MB
> # umount /flash
> # time mount /dev/mtdblock4 /flash -t jffs2
> real 0m 2.63s
> user 0m 0.01s
> sys 0m 0.50s
> # time ls flash - first time we do this it takes a long time
> bigfile
> real 0m 11.79s
> user 0m 0.00s
> sys 0m 0.18s
> # time ls flash - subsequent reads are fast
> bigfile
> real 0m 0.00s
> user 0m 0.01s
> sys 0m 0.00s
>
>
> It was my understanding that the only slow step should be mounting the
> partition when it checks the entire filesystem. Is that correct? Is it
> normal that the first file operation on the partition is slow and then
> all others are fast? That the mount is slow is not a problem but would
> be good if we could make the first access faster even if it means the
> mount must get slower.
>
> This is using Linux 2.6.19.2 with uClibc 0.9.29, busybox 1.9.0 and
> mtd-utils 1.1.0
>
> Thanks,
>
> Will.
>
>
We fought that same exact problem for some time. It turned out being
that we had set the verbosity (something like FS_JFFS2_DEBUG=2) to the
highest setting. It literally took 30s or more to do an 'ls' the first
time.
HTH
--------------------------------------------------
Dennis McLeod
dmcleod at bittware.com
http://www.bittware.com
(603) 226 0404 x514
--------------------------------------------------
More information about the linux-mtd
mailing list