UBIFS Error
Artem Bityutskiy
dedekind1 at gmail.com
Mon Sep 14 10:29:48 EDT 2009
On Mon, 2009-09-14 at 17:27 +0300, Artem Bityutskiy wrote:
> > > And finally, could you please try to reproduce this problem with
> > > nandsim:
> > > http://www.linux-mtd.infradead.org/faq/nand.html#L_nand_nandsim
> > >
> > >>> Unfortunately, I couldn't reproduce the problem with nandsim.It
> > works with nansim.
> > However i couldn't test with 1GiB nandsim as it needs 1GiB ram.Tested
> > with 512MiB nandsim.
> >
> > I guess it is a could be data corruption either in platform specific
> > driver or ubifs.
> > Is there any way we can validate the platform specific nand driver ?
> > Please let me know your views on this?
> >
> > Actually we are in the process of migrating from yaffs to ubifs, The
> > same test application works with
> > yaffs as well.
>
> I've created this piece of documentation for you:
> http://www.linux-mtd.infradead.org/doc/general.html#L_mtd_tests
>
> Please, validate your flash driver/HW.
And here is the text in case someone would review it:
The MTD subsystem includes a set of tests which you may run to verify
your flash hardware and drivers. The tests are available in the mainline
kernels starting from kernel version 2.6.29 and they live in the
drivers/mtd/tests directory of the linux kernel source codes. You may
compile the tests as kernel modules by enabling them in the kernel
configuration menu by marking: "Device Drivers" -> "Memory Technology
Devices (MTD)" -> "MTD tests support" (or the MTD_TESTS symbol in
the .config file).
If you have a pre-2.6.29 kernel, you may find the tests here:
git://git.infradead.org/users/ahunter/nand-tests.git
The MTD test-suite contains the following tests:
* mtd_speedtest: measures and reports read/write/erase speed of
the MTD device.
* mtd_stresstest: performs random read/write/erase operations and
validates the MTD device I/O capabilities.
* mtd_readtest: this tests reads whole MTD device, one NAND page
at a time including OOB (or 512 bytes at a time in case of
flashes like NOR) and checks that reading works properly.
* mtd_pagetest: relevant only for NAND flashes, tests NAND page
writing and reading in different sizes and order; this test was
originally developed for testing the OneNAND driver, so it might
be a little OneNAND-oriented, but must work on any NAND flash.
* mtd_oobtest: relevant only for NAND flashes, tests that the OOB
area I/O works properly by writing data to different offsets and
verifying it.
* mtd_subpagetest: relevant only for NAND flashes, tests sub-page
I/O.
* mtd_torturetest: this test is designed to wear out flash
eraseblocks. It repeatedly writes and erases the same group of
eraseblocks until an I/O error happens, so be careful! The test
supports a number of options (see modinfo mtd_torturetest) which
allow you to set the amount of eraseblocks to torture and how
the torturing is done. You may limit the amount of torturing
cycles using the cycles_count module parameter. It may be very
god idea to run this test for some time and validate your flash
driver and HW, providing you have a spare device. For example,
we caught rather rare and nasty DMA issues on an OMAP2 board
with OneNAND flash, just by running this tests for few hours.
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
More information about the linux-mtd
mailing list