Linux IOMMU Development
 help / color / mirror / Atom feed
* [PATCH v3 0/8] genirq: Provide real IRQ affinity masks in non-SMP configs
@ 2022-07-01 20:00 Samuel Holland
  2022-07-01 20:00 ` Samuel Holland
                   ` (8 more replies)
  0 siblings, 9 replies; 30+ messages in thread
From: Samuel Holland @ 2022-07-01 20:00 UTC (permalink / raw)
  To: Marc Zyngier, Thomas Gleixner
  Cc: Mark Rutland, Krzysztof Wilczyński, linux-hyperv,
	Rich Felker, linux-ia64, linux-sh, linux-pci, Linus Walleij,
	Dave Hansen, linux-mips, James E.J. Bottomley, Max Filippov,
	Jan Beulich, H. Peter Anvin, K. Y. Srinivasan, Sven Schnelle,
	Rob Herring, Wei Liu, Florian Fainelli, Stephen Hemminger,
	Yoshinori Sato, Samuel Holland, Will Deacon, Bartosz Golaszewski,
	x86, Dexuan Cui, Russell King, Wei Xu, Andy Shevchenko,
	Ingo Molnar, Broadcom internal kernel review list, xen-devel,
	Matt Turner, Lorenzo Pieralisi, linux-xtensa, Kees Cook,
	Haiyang Zhang, Rikard Falkeborn, Stefano Stabellini,
	Ivan Kokshaysky, Maximilian Heyne, Bjorn Helgaas, Boris Ostrovsky,
	linux-arm-kernel, Richard Henderson, Juergen Gross, Chris Zankel,
	Thomas Bogendoerfer, linux-parisc, iommu, linux-kernel,
	Serge Semin, Julia Lawall, Oleksandr Tyshchenko, iommu,
	linux-alpha, Borislav Petkov, Colin Ian King, Helge Deller

This series solves some inconsistency with how IRQ affinity masks are
handled between SMP and non-SMP configurations.

In non-SMP configs, an IRQ's true affinity is always cpumask_of(0), so
irq_{,data_}get_affinity_mask now return that, instead of returning an
uninitialized per-IRQ cpumask. This change makes iterating over the
affinity mask do the right thing in both SMP and non-SMP configurations.

To accomplish that:
 - patches 1-3 disable some library code that was broken anyway on !SMP
 - patches 4-7 refactor the code so that irq_{,data_}get_affinity_mask
   can return a const cpumask, since that is what cpumask_of provides
 - patch 8 drops the per-IRQ cpumask and replaces it with cpumask_of(0)

This series was split from the v2 series here, which uses the new
behavior in the RISC-V PLIC irqchip driver:

https://lore.kernel.org/lkml/20220616064028.57933-1-samuel@sholland.org/

Changes in v3:
 - New patch to fix build errors in uniprocessor MIPS configs
 - New patch to drop irq_init_effective_affinity
 - New patch to introduce irq_data_update_affinity
 - New patch to make the returned cpumasks const
 - Use cpumask_of(0) instead of cpu_possible_mask

Changes in v2:
 - New patch to prevent GENERIC_IRQ_IPI from being selected on !SMP

Samuel Holland (8):
  irqchip/mips-gic: Only register IPI domain when SMP is enabled
  genirq: GENERIC_IRQ_IPI depends on SMP
  genirq: GENERIC_IRQ_EFFECTIVE_AFF_MASK depends on SMP
  genirq: Drop redundant irq_init_effective_affinity
  genirq: Refactor accessors to use irq_data_get_affinity_mask
  genirq: Add and use an irq_data_update_affinity helper
  genirq: Return a const cpumask from irq_data_get_affinity_mask
  genirq: Provide an IRQ affinity mask in non-SMP configs

 arch/alpha/kernel/irq.c              |  2 +-
 arch/arm/mach-hisi/Kconfig           |  2 +-
 arch/ia64/kernel/iosapic.c           |  2 +-
 arch/ia64/kernel/irq.c               |  4 +-
 arch/ia64/kernel/msi_ia64.c          |  4 +-
 arch/mips/cavium-octeon/octeon-irq.c |  4 +-
 arch/parisc/kernel/irq.c             |  2 +-
 arch/sh/kernel/irq.c                 |  7 +--
 arch/x86/hyperv/irqdomain.c          |  2 +-
 arch/xtensa/kernel/irq.c             |  7 +--
 drivers/iommu/hyperv-iommu.c         |  2 +-
 drivers/irqchip/Kconfig              | 19 +++----
 drivers/irqchip/irq-bcm6345-l1.c     |  4 +-
 drivers/irqchip/irq-mips-gic.c       | 80 +++++++++++++++++++---------
 drivers/parisc/iosapic.c             |  2 +-
 drivers/pci/controller/pci-hyperv.c  | 10 ++--
 drivers/sh/intc/chip.c               |  2 +-
 drivers/xen/events/events_base.c     |  7 +--
 include/linux/irq.h                  | 34 ++++++++----
 kernel/irq/Kconfig                   |  2 +
 kernel/irq/chip.c                    |  8 +--
 kernel/irq/debugfs.c                 |  2 +-
 kernel/irq/ipi.c                     | 16 +++---
 kernel/irq/manage.c                  | 10 +---
 24 files changed, 140 insertions(+), 94 deletions(-)

-- 
2.35.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2022-07-07 13:31 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-01 20:00 [PATCH v3 0/8] genirq: Provide real IRQ affinity masks in non-SMP configs Samuel Holland
2022-07-01 20:00 ` Samuel Holland
2022-07-01 20:00 ` [PATCH v3 1/8] irqchip/mips-gic: Only register IPI domain when SMP is enabled Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-05 13:52   ` Serge Semin
2022-07-05 13:52     ` Serge Semin
2022-07-07  8:22     ` Marc Zyngier
2022-07-07 10:45       ` Serge Semin
2022-07-01 20:00 ` [PATCH v3 2/8] genirq: GENERIC_IRQ_IPI depends on SMP Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00 ` [PATCH v3 3/8] genirq: GENERIC_IRQ_EFFECTIVE_AFF_MASK " Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00 ` [PATCH v3 4/8] genirq: Drop redundant irq_init_effective_affinity Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00 ` [PATCH v3 5/8] genirq: Refactor accessors to use irq_data_get_affinity_mask Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00 ` [PATCH v3 6/8] genirq: Add and use an irq_data_update_affinity helper Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-03 15:22   ` Oleksandr
2022-07-03 15:22     ` Oleksandr
2022-07-07  8:39     ` Marc Zyngier
2022-07-07  9:37       ` Oleksandr Tyshchenko
2022-07-01 20:00 ` [PATCH v3 7/8] genirq: Return a const cpumask from irq_data_get_affinity_mask Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-03 14:57   ` Michael Kelley (LINUX) via iommu
2022-07-03 14:57     ` Michael Kelley (LINUX)
2022-07-03 15:04   ` Andy Shevchenko
2022-07-03 15:04     ` Andy Shevchenko
2022-07-01 20:00 ` [PATCH v3 8/8] genirq: Provide an IRQ affinity mask in non-SMP configs Samuel Holland
2022-07-01 20:00   ` Samuel Holland

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox