* help with mtd-test failures?
@ 2015-01-03 2:34 Steve deRosier
2015-01-04 8:15 ` Josh Wu
0 siblings, 1 reply; 3+ messages in thread
From: Steve deRosier @ 2015-01-03 2:34 UTC (permalink / raw)
To: linux-mtd
Hi all,
In doing my due dillegence on my system, I decided to run the
mtd-tests. I'm getting a few failures that I'd like your help in
understanding.
The one that worries me comes from mtd_oobtest:
# modprobe mtd_oobtest dev=7
mtd_oobtest: error: verify failed at 0x880000
mtd_oobtest: error: verify failed at 0xe80000
The most worrysome thing about this is the fact that the result isn't
consistant. sometimes I get no failures, and sometimes they're at
different spots. I'll put the kmesg output later.
The other one is less concerning, but what do these failures from
mtd_nandecctest indicate?
mtd_nandecctest: ok - no-bit-error-256
mtd_nandecctest: ok - single-bit-error-in-data-correct-256
mtd_nandecctest: ok - single-bit-error-in-ecc-correct-256
uncorrectable error :
mtd_nandecctest: ok - double-bit-error-in-data-detect-256
uncorrectable error :
mtd_nandecctest: ok - single-bit-error-in-data-and-ecc-detect-256
uncorrectable error :
mtd_nandecctest: ok - double-bit-error-in-ecc-detect-256
mtd_nandecctest: ok - no-bit-error-512
mtd_nandecctest: ok - single-bit-error-in-data-correct-512
mtd_nandecctest: ok - single-bit-error-in-ecc-correct-512
uncorrectable error :
mtd_nandecctest: ok - double-bit-error-in-data-detect-512
uncorrectable error :
mtd_nandecctest: ok - single-bit-error-in-data-and-ecc-detect-512
uncorrectable error :
mtd_nandecctest: ok - double-bit-error-in-ecc-detect-512
I'm not very concerned because I believe from looking at the comments
that this doesn't actually utilize my hardware but is a software ECC
test and I'm using a hardware-based ECC.
My kernel version is 3.8. I'm running on an Atmel SAM9G25 processor
with a Micron MT29F1G08ABBEAH4 SLC NAND.
All of the rest of the tests ran perfectly. And, are there any other
tests I should run to validate my hardware, kernel/driver setup, or
UBIFS?
The kmesg for the mtd_oobtest:
=================================================
mtd_oobtest: MTD device: 7
mtd_oobtest: MTD device size 39845888, eraseblock size 131072,
page size 2048, count of eraseblocks 304, pages per eraseblock 64, OOB
size 64
mtd_oobtest: scanning for bad eraseblocks
mtd_oobtest: scanned 304 eraseblocks, 0 are bad
mtd_oobtest: test 1 of 5
mtd_oobtest: erasing whole device
mtd_oobtest: erased 304 eraseblocks
mtd_oobtest: writing OOBs of whole device
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written up to eraseblock 256
mtd_oobtest: written 304 eraseblocks
mtd_oobtest: verifying all eraseblocks
mtd_oobtest: verified up to eraseblock 0
mtd_oobtest: verified up to eraseblock 256
mtd_oobtest: verified 304 eraseblocks
mtd_oobtest: test 2 of 5
mtd_oobtest: erasing whole device
mtd_oobtest: erased 304 eraseblocks
mtd_oobtest: writing OOBs of whole device
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written up to eraseblock 256
mtd_oobtest: written 304 eraseblocks
mtd_oobtest: verifying all eraseblocks
mtd_oobtest: verified up to eraseblock 0
mtd_oobtest: error: verify failed at 0x880000
mtd_oobtest: error: verify failed at 0xe80000
mtd_oobtest: verified up to eraseblock 256
mtd_oobtest: verified 304 eraseblocks
mtd_oobtest: test 3 of 5
mtd_oobtest: erasing whole device
mtd_oobtest: erased 304 eraseblocks
mtd_oobtest: writing OOBs of whole device
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written up to eraseblock 256
mtd_oobtest: written 304 eraseblocks
mtd_oobtest: verifying all eraseblocks
mtd_oobtest: verified up to eraseblock 0
mtd_oobtest: verified up to eraseblock 256
mtd_oobtest: verified 304 eraseblocks
mtd_oobtest: test 4 of 5
mtd_oobtest: erasing whole device
mtd_oobtest: erased 304 eraseblocks
mtd_oobtest: attempting to start write past end of OOB
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to start read past end of OOB
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to write past end of device
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to read past end of device
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to write past end of device
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to read past end of device
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: test 5 of 5
mtd_oobtest: erasing whole device
mtd_oobtest: erased 304 eraseblocks
mtd_oobtest: writing OOBs of whole device
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written up to eraseblock 256
mtd_oobtest: written up to eraseblock 256
mtd_oobtest: written 303 eraseblocks
mtd_oobtest: verifying all eraseblocks
mtd_oobtest: verified up to eraseblock 0
mtd_oobtest: verified up to eraseblock 256
mtd_oobtest: verified 303 eraseblocks
mtd_oobtest: finished with 2 errors
=================================================
Thanks,
- Steve
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: help with mtd-test failures?
2015-01-03 2:34 help with mtd-test failures? Steve deRosier
@ 2015-01-04 8:15 ` Josh Wu
2015-01-09 5:05 ` Steve deRosier
0 siblings, 1 reply; 3+ messages in thread
From: Josh Wu @ 2015-01-04 8:15 UTC (permalink / raw)
To: linux-mtd
Hi, Steve
On 1/3/2015 10:34 AM, Steve deRosier wrote:
> Hi all,
>
> In doing my due dillegence on my system, I decided to run the
> mtd-tests. I'm getting a few failures that I'd like your help in
> understanding.
>
> The one that worries me comes from mtd_oobtest:
>
> # modprobe mtd_oobtest dev=7
> mtd_oobtest: error: verify failed at 0x880000
> mtd_oobtest: error: verify failed at 0xe80000
>
> The most worrysome thing about this is the fact that the result isn't
> consistant. sometimes I get no failures, and sometimes they're at
> different spots.
I think this should be related with nand flash's bitflips. As atmel nand
driver just use standard oob write/read functions from nand_base.c.
That means there is no ecc protection for mtd_oobtest.
So if there has any nand bitflip happens in the oob area, then
mtd-oobtest will be failed.
How often does the failures comes?
I tested on my at91sam9g25ek board (nand is: 29F2G08AAD) about 20 times,
no error happened.
> I'll put the kmesg output later.
>
> The other one is less concerning, but what do these failures from
> mtd_nandecctest indicate?
>
> mtd_nandecctest: ok - no-bit-error-256
> mtd_nandecctest: ok - single-bit-error-in-data-correct-256
> mtd_nandecctest: ok - single-bit-error-in-ecc-correct-256
> uncorrectable error :
> mtd_nandecctest: ok - double-bit-error-in-data-detect-256
> uncorrectable error :
> mtd_nandecctest: ok - single-bit-error-in-data-and-ecc-detect-256
> uncorrectable error :
> mtd_nandecctest: ok - double-bit-error-in-ecc-detect-256
> mtd_nandecctest: ok - no-bit-error-512
> mtd_nandecctest: ok - single-bit-error-in-data-correct-512
> mtd_nandecctest: ok - single-bit-error-in-ecc-correct-512
> uncorrectable error :
> mtd_nandecctest: ok - double-bit-error-in-data-detect-512
> uncorrectable error :
> mtd_nandecctest: ok - single-bit-error-in-data-and-ecc-detect-512
> uncorrectable error :
> mtd_nandecctest: ok - double-bit-error-in-ecc-detect-512
>
> I'm not very concerned because I believe from looking at the comments
> that this doesn't actually utilize my hardware but is a software ECC
> test and I'm using a hardware-based ECC.
yes, this one is a software ecc test.
Best Regards,
Josh Wu
>
> My kernel version is 3.8. I'm running on an Atmel SAM9G25 processor
> with a Micron MT29F1G08ABBEAH4 SLC NAND.
>
> All of the rest of the tests ran perfectly. And, are there any other
> tests I should run to validate my hardware, kernel/driver setup, or
> UBIFS?
>
> The kmesg for the mtd_oobtest:
>
> =================================================
> mtd_oobtest: MTD device: 7
> mtd_oobtest: MTD device size 39845888, eraseblock size 131072,
> page size 2048, count of eraseblocks 304, pages per eraseblock 64, OOB
> size 64
> mtd_oobtest: scanning for bad eraseblocks
> mtd_oobtest: scanned 304 eraseblocks, 0 are bad
> mtd_oobtest: test 1 of 5
> mtd_oobtest: erasing whole device
> mtd_oobtest: erased 304 eraseblocks
> mtd_oobtest: writing OOBs of whole device
> mtd_oobtest: written up to eraseblock 0
> mtd_oobtest: written up to eraseblock 256
> mtd_oobtest: written 304 eraseblocks
> mtd_oobtest: verifying all eraseblocks
> mtd_oobtest: verified up to eraseblock 0
> mtd_oobtest: verified up to eraseblock 256
> mtd_oobtest: verified 304 eraseblocks
> mtd_oobtest: test 2 of 5
> mtd_oobtest: erasing whole device
> mtd_oobtest: erased 304 eraseblocks
> mtd_oobtest: writing OOBs of whole device
> mtd_oobtest: written up to eraseblock 0
> mtd_oobtest: written up to eraseblock 256
> mtd_oobtest: written 304 eraseblocks
> mtd_oobtest: verifying all eraseblocks
> mtd_oobtest: verified up to eraseblock 0
> mtd_oobtest: error: verify failed at 0x880000
> mtd_oobtest: error: verify failed at 0xe80000
> mtd_oobtest: verified up to eraseblock 256
> mtd_oobtest: verified 304 eraseblocks
> mtd_oobtest: test 3 of 5
> mtd_oobtest: erasing whole device
> mtd_oobtest: erased 304 eraseblocks
> mtd_oobtest: writing OOBs of whole device
> mtd_oobtest: written up to eraseblock 0
> mtd_oobtest: written up to eraseblock 256
> mtd_oobtest: written 304 eraseblocks
> mtd_oobtest: verifying all eraseblocks
> mtd_oobtest: verified up to eraseblock 0
> mtd_oobtest: verified up to eraseblock 256
> mtd_oobtest: verified 304 eraseblocks
> mtd_oobtest: test 4 of 5
> mtd_oobtest: erasing whole device
> mtd_oobtest: erased 304 eraseblocks
> mtd_oobtest: attempting to start write past end of OOB
> mtd_oobtest: an error is expected...
> mtd_oobtest: error occurred as expected
> mtd_oobtest: attempting to start read past end of OOB
> mtd_oobtest: an error is expected...
> mtd_oobtest: error occurred as expected
> mtd_oobtest: attempting to write past end of device
> mtd_oobtest: an error is expected...
> mtd_oobtest: error occurred as expected
> mtd_oobtest: attempting to read past end of device
> mtd_oobtest: an error is expected...
> mtd_oobtest: error occurred as expected
> mtd_oobtest: attempting to write past end of device
> mtd_oobtest: an error is expected...
> mtd_oobtest: error occurred as expected
> mtd_oobtest: attempting to read past end of device
> mtd_oobtest: an error is expected...
> mtd_oobtest: error occurred as expected
> mtd_oobtest: test 5 of 5
> mtd_oobtest: erasing whole device
> mtd_oobtest: erased 304 eraseblocks
> mtd_oobtest: writing OOBs of whole device
> mtd_oobtest: written up to eraseblock 0
> mtd_oobtest: written up to eraseblock 0
> mtd_oobtest: written up to eraseblock 256
> mtd_oobtest: written up to eraseblock 256
> mtd_oobtest: written 303 eraseblocks
> mtd_oobtest: verifying all eraseblocks
> mtd_oobtest: verified up to eraseblock 0
> mtd_oobtest: verified up to eraseblock 256
> mtd_oobtest: verified 303 eraseblocks
> mtd_oobtest: finished with 2 errors
> =================================================
>
> Thanks,
> - Steve
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: help with mtd-test failures?
2015-01-04 8:15 ` Josh Wu
@ 2015-01-09 5:05 ` Steve deRosier
0 siblings, 0 replies; 3+ messages in thread
From: Steve deRosier @ 2015-01-09 5:05 UTC (permalink / raw)
To: Josh Wu; +Cc: linux-mtd@lists.infradead.org
Thanks Josh,
On Sun, Jan 4, 2015 at 12:15 AM, Josh Wu <josh.wu@atmel.com> wrote:
> Hi, Steve
>
> On 1/3/2015 10:34 AM, Steve deRosier wrote:
>>
>> Hi all,
>>
>> In doing my due dillegence on my system, I decided to run the
>> mtd-tests. I'm getting a few failures that I'd like your help in
>> understanding.
>>
>> The one that worries me comes from mtd_oobtest:
>>
>> # modprobe mtd_oobtest dev=7
>> mtd_oobtest: error: verify failed at 0x880000
>> mtd_oobtest: error: verify failed at 0xe80000
>>
>> The most worrysome thing about this is the fact that the result isn't
>> consistant. sometimes I get no failures, and sometimes they're at
>> different spots.
>
> I think this should be related with nand flash's bitflips. As atmel nand
> driver just use standard oob write/read functions from nand_base.c.
> That means there is no ecc protection for mtd_oobtest.
> So if there has any nand bitflip happens in the oob area, then mtd-oobtest
> will be failed.
>
> How often does the failures comes?
> I tested on my at91sam9g25ek board (nand is: 29F2G08AAD) about 20 times, no
> error happened.
>
On our board, it happens more or less every other run. 0x880000 is
most frequent, followed by a few others at random times.
Your other email and this one made me worry about bitflips in the OOB
area, so I decided to test those. The results are on the other
thread, but the important one here is the checking what happens to a
bit flip on the ECC data. I did this manually and the ECC code was
able to successfully correct for this problem. I'm calling that good!
Thanks,
- Steve
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-01-09 5:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-03 2:34 help with mtd-test failures? Steve deRosier
2015-01-04 8:15 ` Josh Wu
2015-01-09 5:05 ` Steve deRosier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).