Addressing Large Sequential Read Performance

In Linux's Ext2 Filesystem

 

Kevin O'Connor and Greg Tracy

koconnor@cs.wisc.edu, gtracy@cs.wisc.edu

University of Wisconsin, Madison

1210 Dayton Street

Madison, WI  53706


Benchmarking Tools:

Kernel Modifications We Made to Support madvise():

  • include/asm/unistd.h - Assigns index into syscall table for madvise

  • include/asm/mman.h - Defines madvise behaviors (MADV_SEQUENTIAL, etc)

  • arch/i386/kernel/entry.S - Adds madvise to system call table

  • arch/i386/kernel/sys_i386.c - Adds entry point for madvise, error checks params

  • mm/mmap.c - Adds the meat of madvise functionality

Kernel Modifcations We Made to Support Improved Read Ahead:

  • mm/filemap.c - Changes made to filemap_nopage() and try_to_read_ahead()

  • fs/buffer.c - Changes made to generic_readpage()

  • driver/block/ll_rw_blk/ll_rw_blk.c - Request waiting occurs in make_request()

All-In-One gzipped tarball:


Return to Main Page