linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/1] dmaengine: virt-dma: convert tasklet to BH workqueue for callback invocation
@ 2025-06-13 14:34 Alexander Kochetkov
  2025-06-13 14:34 ` [PATCH 1/1] " Alexander Kochetkov
  0 siblings, 1 reply; 5+ messages in thread
From: Alexander Kochetkov @ 2025-06-13 14:34 UTC (permalink / raw)
  To: Vinod Koul, dmaengine, linux-kernel
  Cc: Nishad Saraf, Lizhi Hou, Jacky Huang, Shan-Chun Hung,
	Florian Fainelli, Ray Jui, Scott Branden, Lars-Peter Clausen,
	Paul Cercueil, Eugeniy Paltsev, Manivannan Sadhasivam, Frank Li,
	Zhou Wang, Longfang Liu, Andy Shevchenko, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Keguang Zhang, Sean Wang,
	Matthias Brugger, AngeloGioacchino Del Regno, Andreas Färber,
	Daniel Mack, Haojian Zhuang, Robert Jarzmik, Paul Walmsley,
	Samuel Holland, Orson Zhai, Baolin Wang, Chunyan Zhang,
	Patrice Chotard, Amélie Delaunay, Maxime Coquelin,
	Alexandre Torgue, Chen-Yu Tsai, Jernej Skrabec, Laxman Dewangan,
	Jon Hunter, Thierry Reding, Peter Ujfalusi, Kunihiko Hayashi,
	Masami Hiramatsu, Dave Jiang, Amit Vadhavana,
	Uwe Kleine-König, Ulf Hansson, Md Sadre Alam,
	Alexander Kochetkov, Casey Connolly, Kees Cook, Fenghua Yu,
	Jyothi Kumar Seerapu

Hello!

I have Pine64 (Allwinner A64 ARMv8) board.

I've migrated from 5.4 kernel to 6.12 and noticed that DMA callback latencies
became very high. I noticed that sometimes callbacks get called from
ksoftirqd thread and in that case latencies are about 10 ms.
I found out that tasklet bacame deprecated and decided to rewrite DMA
callback code to use BH workqueue. In my case, that fixed high latencies.

My change affects a lot of drivers, but the change is trivial. I've verified
that affected drivers compile after change. But I cannot test it on all
platforms.


Alexander Kochetkov (1):
  dmaengine: virt-dma: convert tasklet to BH workqueue for callback
    invocation

 drivers/dma/amd/qdma/qdma.c                    |  1 +
 drivers/dma/arm-dma350.c                       |  1 +
 drivers/dma/bcm2835-dma.c                      |  2 +-
 drivers/dma/dma-axi-dmac.c                     |  8 ++++----
 drivers/dma/dma-jz4780.c                       |  2 +-
 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c |  2 +-
 drivers/dma/dw-edma/dw-edma-core.c             |  2 +-
 drivers/dma/fsl-edma-common.c                  |  2 +-
 drivers/dma/fsl-edma-common.h                  |  1 +
 drivers/dma/fsl-qdma.c                         |  3 ++-
 drivers/dma/hisi_dma.c                         |  2 +-
 drivers/dma/hsu/hsu.c                          |  2 +-
 drivers/dma/idma64.c                           |  3 ++-
 drivers/dma/img-mdc-dma.c                      |  2 +-
 drivers/dma/imx-sdma.c                         |  2 +-
 drivers/dma/k3dma.c                            |  2 +-
 drivers/dma/loongson1-apb-dma.c                |  2 +-
 drivers/dma/mediatek/mtk-cqdma.c               |  2 +-
 drivers/dma/mediatek/mtk-hsdma.c               |  3 ++-
 drivers/dma/mediatek/mtk-uart-apdma.c          |  4 ++--
 drivers/dma/owl-dma.c                          |  2 +-
 drivers/dma/pxa_dma.c                          |  2 +-
 drivers/dma/qcom/bam_dma.c                     |  4 ++--
 drivers/dma/qcom/gpi.c                         |  1 +
 drivers/dma/qcom/qcom_adm.c                    |  2 +-
 drivers/dma/sa11x0-dma.c                       |  2 +-
 drivers/dma/sf-pdma/sf-pdma.c                  |  3 ++-
 drivers/dma/sprd-dma.c                         |  2 +-
 drivers/dma/st_fdma.c                          |  2 +-
 drivers/dma/stm32/stm32-dma.c                  |  1 +
 drivers/dma/stm32/stm32-dma3.c                 |  1 +
 drivers/dma/stm32/stm32-mdma.c                 |  1 +
 drivers/dma/sun6i-dma.c                        |  2 +-
 drivers/dma/tegra186-gpc-dma.c                 |  2 +-
 drivers/dma/tegra210-adma.c                    |  3 ++-
 drivers/dma/ti/edma.c                          |  2 +-
 drivers/dma/ti/k3-udma.c                       | 10 +++++-----
 drivers/dma/ti/omap-dma.c                      |  2 +-
 drivers/dma/uniphier-xdmac.c                   |  1 +
 drivers/dma/virt-dma.c                         |  6 +++---
 drivers/dma/virt-dma.h                         | 10 +++++-----
 41 files changed, 61 insertions(+), 48 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-06-13 20:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-13 14:34 [PATCH 0/1] dmaengine: virt-dma: convert tasklet to BH workqueue for callback invocation Alexander Kochetkov
2025-06-13 14:34 ` [PATCH 1/1] " Alexander Kochetkov
2025-06-13 16:33   ` Andy Shevchenko
2025-06-13 18:51     ` Alexander Kochetkov
2025-06-13 20:58       ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).