0. Benchmark system: Host: IBM Thinkpad T40, 1.5GHz Pentium M, 2GiB RAM Guest: QEMU, 384MiB RAM 128MiB /dev/hda ext3 rootfs 512MiB /dev/hdb for LogFS benchmark 512MiB /dev/hdc for JFFS2 benchmark Both hdb and hdc contain all 0xff before each benchmark run. QEMU is rebootet before each run. All 1.5GiB for test system are cached in host memory. Both LogFS and JFFS2 use an erasesize of 128KiB. JFFS2 code is stock 2.6.20 without summary, LogFS is current development code. Block2mtd had three fixes applied, see http://git.kernel.org/?p=linux/kernel/git/joern/misc.git;a=log 1. mkfs benchmark Both LogFS and JFFS2 will create a new filesystem when mounting an erased mtd partition. JFFS2 background thread will erase all blocks and write cleanmarkers to them. Umount must wait for this. Times are wallclock times; highest, median and lowest of three runs. Mount LogFS real 0m0.179s real 0m0.171s real 0m0.169s Mount JFFS2 real 0m4.841s real 0m4.715s real 0m4.567s Umount LogFS real 0m0.100s real 0m0.081s real 0m0.079s Umount JFFS2 real 2m31.043s real 2m28.684s real 2m27.144s 2. Mount/umount benchmark Mount and umount filesystem. Times are combined wallclock times for mount and umount; highest, median and lowest of 12 runs. Mount/umount LogFS real 0m0.308s real 0m0.203s real 0m0.184s Mount/umount JFFS2 real 0m2.312s real 0m2.173s real 0m2.095s 3. Write benchmark Mount a filesystem, copy a 16MiB random-data file to it, umount the filesystem again. Times are combined wallclock times for mount, copy and umount; highest, median and lowest of 12 runs. Copy 16MiB file to LogFS real 0m35.871s real 0m25.046s real 0m21.614s Copy 16MiB file to JFFS2 real 0m36.931s real 0m36.274s real 0m33.525s 4. Read benchmark Mount a filesystem, read a 16MiB random-data file from it, umount the filesystem again. Times are combined wallclock times for mount, read and umount; highest, median and lowest of 12 runs. Read 16MiB from LogFS real 0m2.290s real 0m1.771s real 0m1.625s Read 16MiB from JFFS2 real 0m7.114s real 0m6.701s real 0m6.227s 5. Comments There are lies, damn lies and benchmarks. In particular, this benchmark is comparing apples to oranges. JFFS2 has compression support and will attempt to compress data on writes. Benchmark data is random, so compression never works and uncompressed data has to be written instead. LogFS does not have compression support yet, so it will write uncompressed data without wasting any time. The test device is effectively RAM of the host system. LogFS currently has to write more to the device than JFFS2, but this disadvantage is hidden by the fast test device. JFFS2 mounts are slow, on average 2s slower for an empty device. Substracting mount times from read and write times improves the JFFS2 numbers a little. Overall the write times give rough estimates at best due to above reasons. Read times are more meaningful and clearly favor LogFS.