[PATCH 6.16 0/2] genirq: Fixes for CPU hotplug / disable-depth regressions

Brian Norris posted 2 patches 3 months, 4 weeks ago
kernel/irq/chip.c       | 8 ++++++++
kernel/irq/cpuhotplug.c | 7 -------
2 files changed, 8 insertions(+), 7 deletions(-)
[PATCH 6.16 0/2] genirq: Fixes for CPU hotplug / disable-depth regressions
Posted by Brian Norris 3 months, 4 weeks ago
Hi,

Commit 788019eb559f ("genirq: Retain disable depth for managed
interrupts across CPU hotplug") was merged for v6.16-rc1, but it turns
out there were a few oversights.

One such report:

Re: [PATCH v2 1/2] genirq: Retain depth for managed IRQs across CPU hotplug
https://lore.kernel.org/lkml/24ec4adc-7c80-49e9-93ee-19908a97ab84@gmail.com/

This series contains two fixes for bugs that I've found locally and with
others' help. Some of the testing involved:

1. Aleksandrs Vinarskis tested suspend/resume + NVMe on Qualcomm
   Snapdragon X1E/X1P laptops:
   https://lore.kernel.org/lkml/CAMcHhXrT-y3EotxrcCZ0Pj8Sic6wsPSmRiW7NSzdG=9iH8xqKg@mail.gmail.com/

2. Locally-updated versions of kunit tests I've been working on for
   various kernel/irq/ code:
   Subject: [PATCH v4] genirq: Add kunit tests for depth counts
   https://lore.kernel.org/lkml/20250522210837.4135244-1-briannorris@chromium.org/

3. NVMe + x86 QEMU workloads, + system suspend

4. Pixel phones + modem driver + various CPU hotplug / system
   suspend/resume tests.
   (This is probably least compelling, because this doesn't use the
   latest mainline kernel, and it uses non-upstream drivers for some
   relevant components. But I figured I'd mention it, because we've
   noticed some similar problems to #1 here.)

Regards,
Brian


Brian Norris (2):
  genirq: Rebalance managed interrupts across multi-CPU hotplug
  genirq/cpuhotplug: Restore affinity even for suspended IRQ

 kernel/irq/chip.c       | 8 ++++++++
 kernel/irq/cpuhotplug.c | 7 -------
 2 files changed, 8 insertions(+), 7 deletions(-)

-- 
2.50.0.rc1.591.g9c95f17f64-goog
Re: [PATCH 6.16 0/2] genirq: Fixes for CPU hotplug / disable-depth regressions
Posted by Aleksandrs Vinarskis 3 months, 4 weeks ago
On Thu, 12 Jun 2025 at 20:33, Brian Norris <briannorris@chromium.org> wrote:
>
> Hi,
>
> Commit 788019eb559f ("genirq: Retain disable depth for managed
> interrupts across CPU hotplug") was merged for v6.16-rc1, but it turns
> out there were a few oversights.
>
> One such report:
>
> Re: [PATCH v2 1/2] genirq: Retain depth for managed IRQs across CPU hotplug
> https://lore.kernel.org/lkml/24ec4adc-7c80-49e9-93ee-19908a97ab84@gmail.com/
>
> This series contains two fixes for bugs that I've found locally and with
> others' help. Some of the testing involved:
>
> 1. Aleksandrs Vinarskis tested suspend/resume + NVMe on Qualcomm
>    Snapdragon X1E/X1P laptops:
>    https://lore.kernel.org/lkml/CAMcHhXrT-y3EotxrcCZ0Pj8Sic6wsPSmRiW7NSzdG=9iH8xqKg@mail.gmail.com/
>
> 2. Locally-updated versions of kunit tests I've been working on for
>    various kernel/irq/ code:
>    Subject: [PATCH v4] genirq: Add kunit tests for depth counts
>    https://lore.kernel.org/lkml/20250522210837.4135244-1-briannorris@chromium.org/
>
> 3. NVMe + x86 QEMU workloads, + system suspend
>
> 4. Pixel phones + modem driver + various CPU hotplug / system
>    suspend/resume tests.
>    (This is probably least compelling, because this doesn't use the
>    latest mainline kernel, and it uses non-upstream drivers for some
>    relevant components. But I figured I'd mention it, because we've
>    noticed some similar problems to #1 here.)
>
> Regards,
> Brian
>
>
> Brian Norris (2):
>   genirq: Rebalance managed interrupts across multi-CPU hotplug
>   genirq/cpuhotplug: Restore affinity even for suspended IRQ

Thanks for the fix,

Tested the entire series on both laptops that experienced the
previously reported issue:
* Dell XPS 9345, X1E-80-100
* Asus Zenbook A14, X1-26-100

Can confirm it's resolved. No other side effects noticed in ~1.5 days of usage.

Tested-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>  # X1E, X1


>
>  kernel/irq/chip.c       | 8 ++++++++
>  kernel/irq/cpuhotplug.c | 7 -------
>  2 files changed, 8 insertions(+), 7 deletions(-)
>
> --
> 2.50.0.rc1.591.g9c95f17f64-goog
>