Hi Adrian, On 26/03/19 1:03 PM, Adrian Hunter wrote: > On 18/03/19 11:33 AM, Ulf Hansson wrote: >> + Arnd, Grygorii >> >> On Fri, 15 Feb 2019 at 20:17, Faiz Abbas <faiz_abbas@xxxxxx> wrote: >>> >>> sdhci.c has two bottom halves implemented. A threaded_irq for handling >>> card insert/remove operations and a tasklet for finishing mmc requests. >>> With the addition of external dma support, dmaengine APIs need to >>> terminate in non-atomic context before unmapping the dma buffers. >>> >>> To facilitate this, remove the finish_tasklet and move the call of >>> sdhci_request_done() to the threaded_irq() callback. Also move the >>> interrupt result variable to sdhci_host so it can be populated from >>> anywhere inside the sdhci_irq handler. >>> >>> Signed-off-by: Faiz Abbas <faiz_abbas@xxxxxx> >> >> Adrian, I think it makes sense to apply this patch, even if there is >> very minor negative impact throughput wise. >> >> To me, it doesn't seems like MMC/SD/SDIO has good justification for >> using tasklets, besides from the legacy point of view, of course. >> Instead, I think we should try to move all mmc hosts into using >> threaded IRQs. >> >> So, what do you think? Can you overlook the throughput drop and >> instead we can try to recover this on top with other optimizations? > > I tend to favour good results as expressed here: > > https://lkml.org/lkml/2007/6/22/360 > > So I want to do optimization first. > > But performance is not the only problem with the patch. Give me a few > days and I will see what I can come up with. > Gentle ping on this. Thanks, Faiz