Emulated write failures cause block marking as bad

Artem Bityutskiy dedekind1 at gmail.com
Thu Feb 4 12:33:14 EST 2010


Hi,

On Thu, 2010-02-04 at 18:02 +0100, Marek Skuczynski wrote:
> Hello,
>    Today, I was trying to use debug option MTD_UBI_DEBUG_EMULATE_WRITE_FAILURES.
>    What I have found is that occasionally,  the emulated write error
> happens while
>    executing sync_erase() function. In result of this, the part that
> is calling sync_erase()
>    mark the block as bad (see log below).
>    After a few minutes I had many bad blocks.

This is true.

>  Using this option to
> volume update test
>    makes no sense.

This is too strong statement. It does make sens - you verify that the
error handling functionality works.

You can say that this option is not good enough for you, this will be
more fair statement.

>    I am using kernel 2.6.23 with updated UBI  from 2.6.29.
>    Have you experienced this problem already ? if so, is this has been fixed ?

Yes, I saw it. This is purely a debugging feature, and it was enough for
me.

You can easilly develop it a bit more, and make it stop returning erase
errors when the amount of bad eraseblocks has reached some level.

Just amend ubi_dbg_is_erase_failure()

You might want to do the same for 'ubi_dbg_is_write_failure()', for the
same reasons, basically.

HTH.

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)




More information about the linux-mtd mailing list