I recompiled the 220.127.116.11-2.02.fc13.armv7l.omap kernel but I disabled the DMA API patch set. I also tested with smp (the default) and nosmp. And just for good measure, I re-tested the 2.6.35-g6d019da-dirty kernel because the last time I tested 2.6.35 was in May and I've updated a few packages since then.
It does not appear that the DMA API patch set is to blame for the slower SD card performance. The random seek times were longer than 76000ms for all variants of 18.104.22.168 compared to just 664ms on 2.6.35. The sequential reads were fastest with 2.6.35, but today's test was quite a bit faster than May's test; I'm not sure what to make of that. Likewise, sequential writes were also fastest with 2.6.35.
Thus, some other change between 2.6.35 and 2.6.40 must be responsible for the drop in SD card performance, but what?
|Version 1.96||Sequential Output||Sequential Input||Random|
|Size||Per Char||Block||Rewrite||Per Char||Block|
|K/sec||% CPU||K/sec||% CPU||K/sec||% CPU||K/sec||% CPU||K/sec||% CPU||/sec||% CPU|
|SD Card 2.6.35 (May 2011)||2G||41||93||3125||5||3371||4||336||99||17598||15||27.4||1|
|SD Card 2.6.35 (Sept 2011)||2G||39||91||3118||5||3465||4||448||99||19104||16||27.9||1|
|SD Card 22.214.171.124 + DMA patch + SMP||2G||22||65||1862||4||2544||3||339||99||19626||16||15.6||1|
|SD Card 126.96.36.199 + DMA patch + nosmp||2G||19||58||1669||3||2513||3||343||99||20829||13||17.2||1|
|SD Card 188.8.131.52 + no patch + SMP||2G||26||76||1669||3||2271||3||411||99||19592||16||15.7||1|
|SD Card 184.108.40.206 + no patch + nosmp||2G||18||54||1603||3||2395||3||382||99||20894||13||16.5||1|