File system selection for a volatile drive (ext2 or tmpfs?)
Linux - Embedded & Single-board computerThis forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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!
Once we get around to developing the block driver for it, it will be accesed through something like /dev/externram.
How would ramfs be an option for this, given how the device won't be part of the actual "system" memory? We are really looking for the most lean FS for this, given the volatility.
Yes, that picture is a more-or-less accurate picture of our setup. Some configurable portion of the 128MB FPGA RAM will be exposed to the kernel through a block device driver.
So basically, imagine you have a fast, volatile "hard drive" you want to throw a file system on top of, what do you choose to maximize the performance, given we don't care about journaling, etc.?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.