Public bug reported: The current threaded IRQ implementation in spi-tegra210-quad suffers from scheduler-induced latency on heavily loaded systems. The old irq_thread() runs SCHED_FIFO but is pinned by the kernel to the IRQ affinity mask (typically one CPU); when that CPU is saturated by RT workloads (e.g. NCCL multicast) or by an SPI transaction coming from a higher-priority context, the sleeping DMA/PIO wait inside the IRQ thread cannot progress and wait_for_completion_timeout() in transfer_one_message expires - even though the QSPI hardware finished on time. This results in false timeout errors and WARN_ON splats during normal operation.
Lore discussion: https://lore.kernel.org/linux- tegra/[email protected]/ The patches are in linux-next: e329b94b1e47 spi: tegra210-quad: Convert to hard IRQ with high-priority workqueue 1ff82c13ea94 spi: tegra210-quad: Cache TRANS_STATUS in ISR for timeout handler 252ee24aff97 spi: tegra210-quad: Process small PIO transfers in hard IRQ context ** Affects: linux-nvidia-bos (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2167046 Title: spi: tegra210-quad: Improve interrupt handling for loaded systems To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux-nvidia-bos/+bug/2167046/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
