Re: Compact Flash Question

From: Bart Van Assche
Date: Wed May 07 2008 - 03:45:43 EST


On Wed, May 7, 2008 at 9:12 AM, Tomasz Chmielewski <mangoo@xxxxxxxx> wrote:
> As Compact Flash and its wear levelling does not know about free space on
> the filesystem, the wear levelling's effectiveness can be only limited -
> writes won't spread on the whole free area of the flash.
>
> Does anyone know how wear levelling is done in these devices? Perhaps it
> will differ from a manufacturer to manufacturer, but I guess they have a
> free area we normally use to store data, and some reserved area used just
> for wear levelling and bad block handling, but that's just my guess.

The wear leveling algorithm depends on the CompactFlash manufacturer.
Most manufacturers define a certain number of areas on a CompactFlash.
Each area consists of two or more sectors which are counted in the
total size of the CompactFlash, and one or more spare sectors. Wear
leveling is carried out within an area by spreading writes over the
sectors in an area. The controller in the CompactFlash stores the data
about which sectors are used for storing which data persistently. I
know of only one manufacturer who makes the CompactFlash controllers
carry out wear leveling over the whole CompactFlash. Some CompactFlash
devices even allow to query statistics about the wear leveling
algorithm history.

> noatime implies nodiratime, so there is no need to add the latter.

Thanks for the info.

Bart.
--
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/