garbage collect

David Woodhouse dwmw2 at
Mon Jul 3 12:09:38 EDT 2000

alan at 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 

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


To unsubscribe, send "unsubscribe mtd" to majordomo at

More information about the linux-mtd mailing list