You cannot compare 2.4 and 2.6 kernel write performance with `dd', because
the kernels are tuned differently. 2.6 kernels are tuned to leave less
dirty pages in memory than a 2.4 kernel. Hence when your dd has finished,
40% of memory will be dirty (needing writeout) under 2.6, but this figure
is 60% on 2.4.
So the 2.6 kernel does more writeout during the dd run and less writeout
after dd has finished. The 2.4 kernel does less writeout during the dd run
and more writeout after dd has finished.
To compare IO performance you'll need to set 2.6's /proc/sys/vm/dirty_ratio
to 60 and /proc/sys/vm/dirty_async_ratio to 30. Or use write-and-fsync
from http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz with
the `-f' option.
I don't know why the read bandwidth appears to be lower. Try increasing
the readahead with `blockdev --setra'?