Timeout in denali.c on Micron nandflash (Altera SoC)

Boris Brezillon boris.brezillon at free-electrons.com
Wed Mar 15 05:53:28 PDT 2017


+Masahiro

On Wed, 15 Mar 2017 13:06:46 +0100
Thorsten Christiansson <thorsten.christiansson at idquantique.com> wrote:

> Hi all,
> 
> Follow-up:
> 
> > > I'm using Linux on an Altera SoC (Arria V), on which I'm using UBIFS  
> on a
> > > nandflash from Micron (MT29F8G08ADADAH4).  I have a 400Mb r/w  
> partition on
> > > which I have a sqlite3-based database. We're running an application that
> > > reads/writes fairly small blocks. After running for about a week at  
> moderate
> > > load, I get an error message, and the filesystem becomes read-only.
> > >
> > > The message I get is a timeout, originating in the denali.c driver.
> > > [11744.733748] timeout occurred, status = 0x0, mask = 0x4
> > > [11745.733685] timeout occurred, status = 0x0, mask = 0x120  
> 
> > Well, 4.4. is not very fresh. Maybe it saw fixes in recent version.
> > Can you please give MTD tests a try?  
> 
> I have now got a clean 4.10 up and running, and the MTD tests show the
> same error even quicker:
> # insmod /lib/modules/4.10.0/kernel/drivers/mtd/tests/mtd_stresstest.ko
> dev=1
> [  488.721072]
> [  488.722575] =================================================
> [  488.728337] mtd_stresstest: MTD device: 1
> [  488.732342] mtd_stresstest: MTD device size 536870912, eraseblock
> size 131072, page size 2048, count of eraseblocks 4096, pages per
> eraseblock 64, OOB size 64
> [  488.748845] mtd_test: scanning for bad eraseblocks
> [  488.756947] mtd_test: scanned 4096 eraseblocks, 0 are bad
> [  488.762322] mtd_stresstest: doing operations
> [  488.766601] mtd_stresstest: 0 operations done
> [  490.243583] timeout occurred, status = 0x4, mask = 0x3
> [  492.003933] timeout occurred, status = 0x4, mask = 0x3
> [  493.363590] timeout occurred, status = 0x4, mask = 0x3
> [  494.483584] timeout occurred, status = 0x4, mask = 0x3
> [  495.603585] timeout occurred, status = 0x4, mask = 0x3
> [  496.723582] timeout occurred, status = 0x4, mask = 0x3
> [  498.083600] timeout occurred, status = 0x4, mask = 0x3
> [  499.203582] timeout occurred, status = 0x4, mask = 0x3
> [  500.323921] timeout occurred, status = 0x4, mask = 0x3
> [  501.523590] timeout occurred, status = 0x4, mask = 0x3
> [  502.723584] timeout occurred, status = 0x4, mask = 0x3
> [  503.843583] timeout occurred, status = 0x4, mask = 0x3
> [  505.203584] timeout occurred, status = 0x4, mask = 0x3
> ^C[  506.883588] timeout occurred, status = 0x4, mask = 0x3
> [  506.913867] mtd_stresstest: aborting test due to pending signal!
> [  506.919940] mtd_stresstest: error -4 occurred
> [  506.924320] =================================================
> 
> Any ideas on how to go forwards from here are very welcome.

Masahiro is currently reworking the driver, maybe he'll have some ideas.

Regards,

Boris



More information about the linux-mtd mailing list