mmc: core: complete/wait_for_completion performance

Stefan Wahren stefan.wahren at
Sun Jan 15 13:08:18 PST 2017

Hi Jörg,

> Jörg Krause <joerg.krause at> hat am 15. Januar 2017 um 21:42 geschrieben:
> Hi Stefan,
> On Tue, 2016-12-27 at 00:03 +0100, Stefan Wahren wrote:
> > Hi Jörg,
> > ...
> > I also rebased an old patch from Shawn Guo [2] with pre_req and
> > post_req support, tried to call the DMA channel callback from the
> > interrupt context instead of scheduling the tasklet within the DMA
> > engine driver and implement CMD23 support [3]. But none of them show
> > any measurable performance improvement.
> I tested the three patches after disabling any debugging options in the
> config. There is no performance gain, but the timings have changed.
> Please have a look at the attached graphs. The time between complete()
> and wait_for_completion() is reduced to 15us whereas the time from
> return from wait_for_completion() to return to sdio_readsb() increases
> to 23us (from maybe 2us before).

that confirms my results. I think you are searching on the wrong layer. You better step "back" and take a look at the whole transfer instead of single blocks. Maybe there are some bigger delays.


> Jörg

More information about the linux-arm-kernel mailing list