> For testing I used a new class 10 16GB microSD card, which claims 10MB/s
> throughput and seems to provide close to that for sequential IO.
> According to the flashbench tool, the card appears to have an 8MB erase
> block size; five erase blocks can be open at a time,
I always wonder how well using XFS and tuning it's geometry to the flash characteristics would work. E.g. use a single stripe unit of the erase block size (8MB in this case) to align fixed metadata and large file allocation to 8MB boundaries. Then setting the number of AGs equal to the number of open erase blocks at a time (5 in this case) gives an appropriate number separate regions of activity in the filesystem to distribute the write loads.
And then there's the dynamic inode allocation, which means inodes are also allocated in the same general locality as the parent directory blocks and their file data.
It seems like these feature would provide are similar behaviours to what filesystems specifically designed for flash use, so I've always been curious as to whether it would make any significant difference to performance on a simple flash device like the above one you tested with...
Posted Dec 12, 2012 7:38 UTC (Wed) by nhippi (subscriber, #34640)
[Link]
I hope there would some effort to create an "MMC-direct" extension to the MMC/SD standards, allowing bypassing the FTL layer. Or at least giving the erase block sizes and other bits of information needed to to tune the filesystem to work on it optimally.
This would be especially useful for the eMMC storages that are soldered on board, and thus don't need FAT to be compatible to the world.