summaryrefslogtreecommitdiff
path: root/include/linux/console_struct.h
diff options
context:
space:
mode:
authorKoichiro Den <den@valinux.co.jp>2026-07-18 03:06:39 +0900
committerVinod Koul <vkoul@kernel.org>2026-07-19 22:19:38 +0530
commit35de39e4511f00a87f814b5f0afeb082a8fbc5d7 (patch)
tree57d92b29e723f25bcc6efd329330b030980f24b4 /include/linux/console_struct.h
parent5b0a8818fc5237676bdcd9659180e1edf8e943d7 (diff)
dmaengine: dw-edma: Defer channel IRQ handling to workqueue
On some SoCs (e.g. R-Car S4) the endpoint-side eDMA raises a single fixed SPI that is hardwired to CPU0 and covers every read and write channel. Handling channel events directly in that hard IRQ context serializes the completion processing of all channels on one CPU: descriptor recycling and refill, client callbacks (the vchan tasklet runs on the scheduling CPU) and the doorbell writes all funnel through CPU0, while the handler additionally spins on each channel's vc.lock. Especially under heavy multichannel load, this contention becomes a performance bottleneck. Keep the hard IRQ handler minimal: clear the status, dispatch channel events, and defer per-channel processing to work items. A work item per channel preserves ordering while allowing different channels to run in parallel on any CPU. Reviewed-by: Frank Li <Frank.Li@nxp.com> Signed-off-by: Koichiro Den <den@valinux.co.jp> Link: https://patch.msgid.link/20260717180639.2643243-10-den@valinux.co.jp Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'include/linux/console_struct.h')
0 files changed, 0 insertions, 0 deletions