[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: garbage collect




alan@xxxxxxx.uk said:
> The interesting question is should they.

I don't (currently) think so. It's fairly difficult to fit flash into the
block device model.

JFFS is the primary user of MTD devices now - everything else (i.e. FTL,
NFTL) is a second class citizen. JFFS writes variable-size nodes, and doing
that on a block device would mean wasting RAM on grouping writes into
blocksized chunks.

And what do you set your blocksize to? On most NOR flash devices, it's 
something like 128Kb. We need to support sub-blocksize writes, and we need 
that to be explicitly controlled by the user, so it can optimally balance the 
journalling requirements with the desire to have as few write cycles as 
possible. 

> Withouth them going via the block layer you wont be able to mirror 
> them 

Mirrored flash? That's just sick. And anyway, it needs to be done at a 
higher level than the individual flash chips - on which you may have bad 
blocks in different places, which need to be mapped round differently on 
each chip.

Currently, if you want mirrored flash, you have to use {N,}FTL to provide
emulated block devices on top of which you stick your RAID array.

It's feasible to add direct mirroring support to JFFS, though, if it's 
really a necessary feature.

> or potentially run a loopback fs over them soon 

That's even sicker, and should arguably be done in userspace with nbd.


--
dwmw2