Centos-kernel-stream-9/kernel/irq
Myron Stowe 47b6374106 genirq/msi: Silence 'set affinity failed' warning
JIRA: https://issues.redhat.com/browse/RHEL-67693
Upstream Status: 5297bba507dc54045e6efeb9955c1271ca9aafe1

commit 5297bba507dc54045e6efeb9955c1271ca9aafe1
Author: Marek Vasut <marek.vasut+renesas@mailbox.org>
Date:   Tue Jul 23 15:27:01 2024 +0200

    genirq/msi: Silence 'set affinity failed' warning

    Various PCI controllers that mux MSIs onto a single IRQ line produce these
    "IRQ%d: set affinity failed" warnings when entering suspend. This has been
    discussed before [1] [2] and an example test case is included at the end of
    this commit message.

    Controller drivers that create MSI IRQ domain with
    MSI_FLAG_USE_DEF_CHIP_OPS and do not override the .irq_set_affinity()
    irqchip callback get assigned the default msi_domain_set_affinity()
    callback. That is not desired on controllers where it is not possible to
    set affinity of each MSI IRQ line to a specific CPU core due to hardware
    limitation.

    Introduce flag MSI_FLAG_NO_AFFINITY, which keeps .irq_set_affinity() unset
    if the controller driver did not assign it.  This way, migrate_one_irq()
    can exit right away, without printing the warning. The .irq_set_affinity()
    implementations which only return -EINVAL can be removed from multiple
    controller drivers.

      $ grep 25 /proc/interrupts
       25:   0 0 0 0 0 0 0 0   PCIe MSI   0   Edge   PCIe PME

      $ echo core > /sys/power/pm_test ; echo mem > /sys/power/state
      ...
      Disabling non-boot CPUs ...
      IRQ25: set affinity failed(-22). <---------- This is being silenced here
      psci: CPU7 killed (polled 4 ms)
      ...

    [1] https://lore.kernel.org/all/d4a6eea3c5e33a3a4056885419df95a7@kernel.org/
    [2] https://lore.kernel.org/all/5f4947b18bf381615a37aa81c2242477@kernel.org/

    Link: https://lore.kernel.org/r/20240723132958.41320-2-marek.vasut+renesas@mailbox.org
    Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
    [bhelgaas: commit log]
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>

Signed-off-by: Myron Stowe <mstowe@redhat.com>
2025-02-18 09:48:09 -07:00
..
Kconfig genirq: GENERIC_IRQ_EFFECTIVE_AFF_MASK depends on SMP 2023-06-22 16:50:51 -04:00
Makefile
affinity.c genirq/affinity: Move group_cpus_evenly() into lib/ 2023-03-28 11:01:03 +08:00
autoprobe.c
chip.c Merge: Rebase Arm GiC driver to upstream v6.6 2024-02-09 09:03:06 -05:00
cpuhotplug.c genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline 2024-06-25 18:43:54 +00:00
debug.h
debugfs.c genirq: Allow fasteoi handler to resend interrupts on concurrent handling 2023-09-26 14:04:17 -04:00
devres.c
dummychip.c
generic-chip.c
handle.c
internals.h genirq: Expand doc for PENDING and REPLAY flags 2023-09-26 14:04:17 -04:00
ipi.c genirq/ipi: Fix NULL pointer deref in irq_data_get_affinity_mask() 2023-04-07 07:31:48 -04:00
irq_sim.c
irqdesc.c genirq, softirq: Use in_hardirq() instead of in_irq() 2024-04-05 09:49:13 -04:00
irqdomain.c genirq/irqdomain: Remove unused irq_domain_check_msi_remap() code 2023-05-03 08:22:11 -07:00
manage.c kthread: add kthread_stop_put 2024-09-20 12:26:34 -07:00
matrix.c
migration.c
msi.c genirq/msi: Silence 'set affinity failed' warning 2025-02-18 09:48:09 -07:00
pm.c
proc.c
resend.c
settings.h
spurious.c
timings.c