Re: SFFDC and blksize_size

From: David Woodhouse
Date: Fri Nov 07 2003 - 20:01:44 EST


On Fri, 2003-11-07 at 13:12 +0000, Simon Haynes wrote:
> I have been writing a block driver for SSFDC compliant SMC cards. This stuff
> allocates 16k blocks. When I get requests the transfers are split into the
> size I specifty in the blksize_size{MAJOR] array.

You can't set a block size larger than page size.

> It sems that most things
> set this to 1k. In my case this causes a performance problem as I have to
> end up doing 16 * (16K write, 16K read, 16k erase) to write and verify a
> 16k block which has been previously written.

Urgh. Whereas with FTL, NFTL etc. you can just fill in new sectors
individually in the newly-allocated eraseblock.

Surely you're not actually erasing the block and then praying you don't
lose power before writing the new contents back? There's some kind of
chaining from the old to the new block? Can't you say which sectors are
valid in the new block, and which should still be used from the old?

I wouldn't advocate setting the block size even to 4KiB, since that'll
waste a lot of space. But we could certainly make use of request merging
if what you're doing really is necessary -- we can make a
'write_sectors' function which writes more than a sector at a time.

--
dwmw2

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