Re: Flash erase groups and filesystems

From: Pierre Ossman
Date: Wed Aug 17 2005 - 06:36:09 EST


Jörn Engel wrote:

>On Tue, 16 August 2005 20:13:36 +0200, Jörn Engel wrote:
>
>
>>Yes. Most filesystems expect to find either 1) old data or 2) new
>>data. Blocks full of 0xff are non-expected.
>>
>>
>
>Maybe this isn't obvious. Because of this expectation, it is
>absolutely not safe to pre-erase blocks, just because the fs will
>write them anyway. Unless you can guarantee that the write will
>always succeed, even in case of power outage, you just broke the
>expectation.
>
>
>

Darn. I suspected as much. I'll guess the erase function will have to be
scrapped for now...

Whilst we're on the subject, do the filesystems assume that the device
can tell them exactly where the write failed? I.e. if the driver knows
that 5 sectors were written correctly, but that it failed somewhere
beyond that. It might have failed at sector 6, but it might also have
failed at sector 10. The assumption that sectors contain either old or
new data is still true, we're just unsure which. This can be the case
when you feed a controller a lot of data and it can only report back
success or failure.

>Fixing all filesystem is also not an option, even ignoring the
>question whether such a change would be a fix, a change of behaviour
>or a plain bug.
>
>So the only remaining option is to add a new interface that lets
>filesystems decide to support pre-erase in some form. And one such
>interface would be the "forget" operation. Nice attribute of forget
>is the fact that it would also help some FTL layers in the kernel.
>There is nothing MMC-specific about it.
>
>
>

A bit too much work for me right now. But I'll be there with my erase
patch when someone implements it. :)

Rgds
Pierre


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/