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

This benchmarking was done using a small shell script. Here's a snippet

for size in 4 16 64 256 1024 4096 16384  ; do
                kldunload ext2fs.ko
                mount -t ext2fs /dev/ad4s6 /media/ext2
                iozone -R -r ${size}k -s 1024m -t 1 -F /media/ext2/f1 | tee -a somename${size}.txt
                umount /media/ext2
                sync
                done

Then a perl script was used to sort the data and for plotting the graphs.

initial_write_picture.jpeg rewrite_picture.jpeg read_picture.jpeg re-read_picture.jpeg reverse_read_picture.jpeg stride_read_picture.jpeg random_read_picture.jpeg mixed_workload_picture.jpeg random_write_picture.jpeg pwrite_picture.jpeg pread_picture.jpeg

SOC2009AdityaSarawgi (last edited 2009-08-10 19:51:41 by AdityaSarawgi)