MTD_PHRAM - what filesystem to use?
joern at lazybastard.org
Sun Mar 11 16:31:22 EDT 2007
On Sun, 11 March 2007 21:05:08 +0100, Sam Ravnborg wrote:
> At my new job we are planning to start usign a ARM9 based
> design where we need to store data persistently.
> Since the data are updated several times / minute the FLASH
> devices are not suitable and therefore alternative solutions
> are being looked at.
> The most promising solutions semms to use battery
> backed-up RAM.
> >From Linux we could memorymap this area but using a filesystem
> gives all sorts of extra bonusses so this is preferred.
> I looked shortly at PRAMFS that seems to do the trick but PRMFS
> seems unmaintained and not merged.
> Then I stumbled over PHRAM.
> I and pretty clear upon the basic parts lettign the RAM look
> like any other FLASH device.
> But then the question popped up.
> What is the best filesystem to use on top of a PHRAM based
> MTD device?
> My first two ideas were to use either JFFS2 or ext2
> (the latter with the blocklayer emulation).
> But reading the documentation both looks like overkill.
> The requirement so far is to gain maximum bebefit of the
> avalable 100 kbytes of RAM.
> There will be a limited number of files (< 500).
If you decide on battery-backed RAM, the PHRAM/JFFS2 combo would be the
best existing solution. Alternatively you could write a custom
With JFFS2 you should carefully decide on a suitable erasesize. The
JFFS2 overhead can be minimized by tuning this number. Most likely
something small, 4KiB or 8KiB is optimal.
Yet another alternative would be to use flash. The math is quite
simple. Example calculation:
Update interval: 10s
Updated data size: 10kB
Required device lifetime: 10a
JFFS2 overhead: 10%
Flash durability: 100k erases
Write rate is 10kB / 10s * 1.1 = 1.1kB/s.
Total written data in 10a is: 1.1kB/s * 31536000s/a * 10a = 346GB
Required flash size: 346GB / 100k = 3468kB
So with the example numbers, you would only need a 4MiB flash chip.
Those should be rather cheap. But it remains your duty to redo the
calculation with correct numbers and check for any mistakes I may have
Also make sure that your supplier guarantees 100k erases on the flash.
At 10k erases, you would need a device 10x bigger. 1M erases, if
available, are even better.
You can't tell where a program is going to spend its time. Bottlenecks
occur in surprising places, so don't try to second guess and put in a
speed hack until you've proven that's where the bottleneck is.
-- Rob Pike
More information about the linux-mtd