Re: [PATCH v3 3/3] PCI: dwc: Enable MSI affinity support
From: Brian Norris
Date: Fri May 22 2026 - 16:27:56 EST
Hi Radu,
On Fri, Nov 28, 2025 at 04:20:55PM -0500, Radu Rendec wrote:
> Leverage the interrupt redirection infrastructure to enable CPU affinity
> support for MSI interrupts. Since the parent interrupt affinity cannot
> be changed, affinity control for the child interrupt (MSI) is achieved
> by redirecting the handler to run in IRQ work context on the target CPU.
>
> This patch was originally prepared by Thomas Gleixner (see Link tag
> below) in a patch series that was never submitted as is, and only
> parts of that series have made it upstream so far.
>
> Originally-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Link: https://lore.kernel.org/linux-pci/878qpg4o4t.ffs@tglx/
> Signed-off-by: Radu Rendec <rrendec@xxxxxxxxxx>
I've been trying to bisect a suspend/resume regression on a Qualcomm
SC7280 laptop (using arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts),
and unfortunately, it bisects to this:
eaf290c404f7c39f23292e9ce83b8b5b51ab598a is the first bad commit
commit eaf290c404f7c39f23292e9ce83b8b5b51ab598a
Author: Radu Rendec <rrendec@xxxxxxxxxx>
Date: Fri Nov 28 16:20:55 2025 -0500
PCI: dwc: Enable MSI affinity support
See the failure below [1]. Unfortunately, the logs don't give me an
immediate lead.
It fails similarly on v7.1-r1 and v7.1-rc4, so even though I know there
were a few bugfixes to the IRQ-redirect stuff already, I don't think
they help my case.
I'll see if I can learn anything more here on my own, but I figured I'd
report it in case you have any thoughts or leads I should investigate.
Regards,
Brian
[1]
[ 58.229764] Enabling non-boot CPUs ...
[ 58.234065] Detected VIPT I-cache on CPU1
[ 58.234121] GICv3: CPU1: found redistributor 100 region 0:0x0000000017a80000
[ 58.234171] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
[ 58.235038] CPU1 is up
[ 58.255764] Detected VIPT I-cache on CPU2
[ 58.255801] GICv3: CPU2: found redistributor 200 region 0:0x0000000017aa0000
[ 58.255837] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[ 58.256394] CPU2 is up
[ 58.277119] Detected VIPT I-cache on CPU3
[ 58.277155] GICv3: CPU3: found redistributor 300 region 0:0x0000000017ac0000
[ 58.277191] CPU3: Booted secondary processor 0x0000000300 [0x412fd050]
[ 58.277824] CPU3 is up
[ 58.299086] Detected PIPT I-cache on CPU4
[ 58.299104] GICv3: CPU4: found redistributor 400 region 0:0x0000000017ae0000
[ 58.299124] CPU4: Booted secondary processor 0x0000000400 [0x411fd411]
[ 58.299437] CPU4 is up
[ 58.320186] Detected PIPT I-cache on CPU5
[ 58.320205] GICv3: CPU5: found redistributor 500 region 0:0x0000000017b00000
[ 58.320224] CPU5: Booted secondary processor 0x0000000500 [0x411fd411]
[ 58.320513] CPU5 is up
[ 58.341154] Detected PIPT I-cache on CPU6
[ 58.341173] GICv3: CPU6: found redistributor 600 region 0:0x0000000017b20000
[ 58.341193] CPU6: Booted secondary processor 0x0000000600 [0x411fd411]
[ 58.341481] CPU6 is up
[ 58.362167] Detected PIPT I-cache on CPU7
[ 58.362186] GICv3: CPU7: found redistributor 700 region 0:0x0000000017b40000
[ 58.362206] CPU7: Booted secondary processor 0x0000000700 [0x411fd411]
[ 58.362532] CPU7 is up
[ 58.384442] nvme 0001:01:00.0: Unable to change power state from unknown to D0, device inaccessible
[ 59.243847] onboard-usb-dev 4-1: reset high-speed USB device number 2 using xhci-hcd
[ 59.492243] onboard-usb-dev 5-1: reset SuperSpeed USB device number 2 using xhci-hcd
[ 68.875606] nvme 0001:01:00.0: PM: **** DPM device timeout ****
[ 68.881728] Call trace:
[ 68.884266] __switch_to+0x16c/0x188 (T)
[ 68.888331] __schedule+0x7c4/0x98c
[ 68.891939] schedule+0x38/0x60
[ 68.895196] schedule_timeout+0xf8/0x120
[ 68.899254] io_schedule_timeout+0x2c/0x4c
[ 68.903481] __wait_for_common+0xd4/0x168
[ 68.907621] wait_for_completion_io_timeout+0x28/0x34
[ 68.912832] blk_execute_rq+0x138/0x164
[ 68.916792] nvme_execute_rq+0x20/0x54
[ 68.920665] __nvme_submit_sync_cmd+0xe0/0x128
[ 68.925258] nvme_features.isra.0+0x88/0xd4
[ 68.929580] nvme_set_features+0x34/0x40
[ 68.933638] nvme_resume+0x68/0x88
[ 68.937158] pci_pm_resume+0x88/0xfc
[ 68.940849] dpm_run_callback+0x6c/0xec
[ 68.944811] device_resume+0x194/0x270
[ 68.948683] async_resume+0x28/0x3c
[ 68.952289] async_run_entry_fn+0x40/0x104
[ 68.956515] process_scheduled_works+0x210/0x320
[ 68.961277] worker_thread+0x14c/0x1ec
[ 68.965147] kthread+0x154/0x1b8
[ 68.968486] ret_from_fork+0x10/0x20
[ 68.972192] Kernel panic - not syncing: nvme 0001:01:00.0: unrecoverable failure