mmc: core: complete/wait_for_completion performance
From: Stefan Wahren <hidden>
Date: 2017-01-15 21:08:18
Hi J?rg,
J?rg Krause [off-list ref] hat am 15. Januar 2017 um 21:42 geschrieben: Hi Stefan, On Tue, 2016-12-27 at 00:03 +0100, Stefan Wahren wrote:quoted
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. Stefan
J?rg