File system selection for a volatile drive (ext2 or tmpfs?)
I have a new project that involves migrating an old software baseline to run embedded Linux v.2.6.28 on an Atmel AT91SAM9G20-based board.
One of the tasks we are starting with is determining a fast good file system candidate for an external memory buffer (located behind an FPGA off the main bus). We will eventually be writing a block device driver for it, so that will be the interface. Of course, this is all volatile memory, so journaling, etc, is unneeded. What are some good candidates for creating a file system on this area?
To get started, I am using a ramdisk device to simulate the forthcoming interface to the RAM buffer. I am playing around with ext2/ext3 to do some initial benchmarking and ext2 seems to be the winner right now in terms of raw speed. I am also testing formatting the ramdisk as a swap area, mounting a tmpfs, and then writing a large file to the tmpfs to start getting the swap cache busy. Does this seem like a reasonable setup? Are there settings in /proc/sys/vm that will help characterize the performance more accurately?
With that in place, the tmpfs file system does much better than ext2, but I want to make sure there are not other good candidates (xfs, jfs, reiserfs, etc?) that would be good to test out. Thanks in advance!