Re: [PATCH v5 1/3] spi: tegra210-quad: Convert to hard IRQ with high-priority workqueue
From: Mark Brown
Date: Sun Jul 19 2026 - 10:33:47 EST
On Wed, Jul 08, 2026 at 01:12:55AM +0000, Vishwaroop A wrote:
> Threaded IRQ handlers suffer from scheduler latency on heavily loaded
> systems, causing false transfer timeouts. Convert to a hard IRQ handler
> that schedules work on a high-priority unbound workqueue.
The high priority workqueue is a SCHED_NORMAL task with priority -20 so
it can be starved by real time tasks running at SCHED_FIFO, interrupt
threads are SCHED_FIFO (see the start of irq_thread()) so are harder to
starve.
> - if (!t) {
> +static void tegra_qspi_work_handler(struct work_struct *work)
> {
> - * If no transfer is in progress, check if this was a real interrupt
> - * that the timeout handler already processed, or a spurious one.
> + * tegra_qspi_handle_timeout() calls cancel_work_sync() before it
> + * invokes handle_{cpu,dma}_based_xfer() itself, so this work is
That's actually in patch 2 so we have a bisect issue here. Not sure how
critical that is though.
Attachment:
signature.asc
Description: PGP signature