Via Google's Open Source Blog, this Google-sponsored project to study Linux I/O scheduler behavior is quite interesting, yielding unexpected results—for example, deadline is actually best for some workloads and CFS, while ideal for others, has awful worst-case performance.
Curious about I/O schedulers? Check out chapter 13 in my favorite kernel book. Want to optimize your code's file I/O and understand scheduling from the perspective of user-space? Read chapter 4 in my favorite system programming book.