Improving Second Extended File system (ext2fs) and making it GPL free

Abstract

The Ext2 or extended file system is a file system developed by Rémy Card and others for the Linux kernel. The ext2fs or it's derivatives are used as the Linux operating system's native file system format today. Ext2 is still preferred on flash drives as it requires fewer write operations (since it has no journal). FreeBSD has had Ext2 support for a long time. The current implementation suffers from some problems and it's GPL'd.

Schedule

If you want the schedule in a more organized and presentable form then I recommend going here.

Tue, April 21 – Tue, April 28 : Initial Reading and Planning

Wed, Apr 29 – Mon, May 4, 2009 : PR : 104133 File system corruption

Tue, May 5 – Fri, May 8 : PR : 77826,81568 and 105093

Sat, May 9 – Mon, May 11 : Interval for gaining on lost schedule, planning etc, updating blog,wiki etc.

Tue, May 12 – Fri, May 15 : PR : 122047 UF_IMMUTABLE / UF_APPEND flag problem

Sat, May 16 – Wed, May 20 : Phase 2 planning and research

Thu, May 21 – Thu, May 28 : Rewriting ext2fs.h and ext2fs_sb.h

Fri, May 29 – Wed, June 3 : Researching NetBSD's block and inode allocation policy

Thu, June 4 – Sat, June 20 : Rewriting ext2_linux_balloc.c and ext2_linux_ialloc.c

Sun, June 21 – Wed, June 24 : Interval for gaining on lost schedule, reviewing code, updating blog, wiki etc.

Thu, June 25 – Fri, July 10 : Rewriting ext2_vfops.c and i386_bitops.h

Sat, July 11 – Mon, July 20 : Benchmarking

Tue, July 21 – Sat, July 25 : Interval for gaining on schedule, additional bechmarking, uploading results on the web etc.

Sun, July 26 – Mon, August 17, 2009 : Reviewing code, Bug Fixing, Documentation and adding new features (if possible)

Mentor

Ulf Lilleengen

Benchmarking

I conducted all my benchmarking on a machine with a 2 GHz Intel Core 2 Duo (T5870) CPU, 2 MB of L2 cache. The motherboard was a Dell Vostro J475C with 800 MHz FSB. The machine contained 3GB of DDR2 SDRAM. The benchmark disk was a 5400 RPM WD 3200BEVT (WD Scorpio Blue) with a capacity of 320 GB.

uname -a 
FreeBSD aditya 8.0-BETA2 FreeBSD 8.0-BETA2 #1: Wed Jul 29 14:53:10 IST 2009

IOZONE Benchmarking

iozone -a <mountpoint>

Series 0 is BSDL and MPSAFE ext2fs system and Series 1 is GPL'd ext2fs.

iozone_write.png iozone_rewrite.png iozone_read.png iozone_reread.png iozone_rr.png iozone_rw.png

Conclusions

The performance of the BSDL ext2fs is almost equal to the GPL'd implementation. The performance of both the implementation is low while transferring big files due to lack of optimized policies.

dbench

dbench -D <mountpoint> 4 

BSDL ext2fs Throughput: 29.8157 MB/sec

GPL ext2fs Throughput: 34.9873 MB/sec

Blogbench

blogbench -d <mountpoint>

BSDL ext2fs:

Final score for writes: 41

Final score for reads: 24933

GPL ext2fs:

Final score for writes: 44

Final score for reads: 31489

SOC2009AdityaSarawgi (last edited 2009-12-08T22:17:06+0000 by AdityaSarawgi)