Further to my md/raid tests reported earlier I retested raid0 throughput on 2.6 as the 'write throughput' numbers I got in the first run were very strange. The second run shows much more reasonable number.
I also tested raid5 with a degraded array (one drive missing). This resulted in slower reads than a fully functional raid5, and same-speed writes.
raid0 retest
This graph compares write throughput measured by bonnie over a raid0 array for two different runs, and the first run had very odd numbers. Write throughput for 2.4 is included for comparison.
As you can see, the second run numbers are comparible to 2.4. Why the first run had such strange results I cannot understand, as the 'read' results which were tested at much the same time didn't show anything strange.
degraded raid5
These graphs show read and write throughput for a degraded raid5 array in 2.6. Read throughput is lower (presumably as the requests are speread over fewer drives) but write throughput is much the same, though still much slower than 2.4.
The fact that the write throughput is the same validates the original set of testing (during which write throughput to raid0 was very strange). The lack of speed can no longer be blamed on "whatever slowed raid0 down" and must be specific to the raid5 code. I suspect it is something to do with how requests are scheduled. raid5 write requests are delayed in the hope of getting a full stripe to write. Maybe they are being delayed too long.
Comparing Schedulers
Comparing the default Anticipatory Scheduler with the Completely Fair Queueing scheduler results in no significant improvement. The delays that AS inserts after a read before performing a write obviously aren't that much of a problem.