Does UBI still place a just-tortured block first in the free block list?

Artem Bityutskiy dedekind1 at gmail.com
Tue Jul 1 07:53:24 PDT 2014


Hi Atlant,

On Tue, 2014-07-01 at 09:11 -0400, Atlant Schmidt wrote:
> Folks:
> 
>   Several years ago, the behavior of UBI was that if a block
>   failed to write, UBI would torture-test the block (with 0x5A
>   and 0xA5 patterns) and if the block passed the torture test,
>   it would be placed at the top of the list of available blocks.

Not sure, eraseblocks are stored in an RB-tree tree which is indexed by
the erase counter. Then UBI picks those with smaller erase counters
first.

>   With this algorithm, UBI would attempt to again use the just-
>   tortured block for the data that was still waiting to be written.
>   But because the write failures were often data-dependent, in
>   our experience, the block would frequently again fail to store
>   the data to be written. It would be tortured again, passed again,
>   and the cycle would repeat. We've seen this cycle continue for
>   minutes at a time.

Sounds like a possible scenario, if the PEB in question has low erase
counter.

>   Is the algorithm still the same? Or is the just-tortured block
>   now placed at the bottom of the list of available blocks so that
>   it will only show up again later (when the data to be written
>   will probably be different)?

I am not sure about the list you are talking about, do you just assume
there is a list or you mean a specific list?

I do not think this part of UBI changed for the last several years.

-- 
Best Regards,
Artem Bityutskiy




More information about the linux-mtd mailing list