Skip to content

Prepare for enabling hierarchy irqdomain on x86

Jiang Liu linux-acpi linux-iommu linux-pci linux-pm lkml 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest20 patches 1 replyIn review
  2. v218 patches 0 repliesSuperseded
  3. v1 RFC18 patches 2 repliesSuperseded

Changes in v3 from the cover letter

1) Rebase to v3.18-rc2

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/20ACPI, irq, x86: Get rid of special handling of GSI for ACPI SCIarch/x86/kernel/acpi/boot.c+2 -80 replies
2/20x86, irq, ACPI: Fix building warning of unused codearch/x86/kernel/acpi/boot.c+2 -00 replies
3/20x86, irq: Kill fourth parameter of IO_APIC_get_PCI_irq_vector()arch/x86/include/asm/hw_irq.h arch/x86/kernel/apic/io_apic.c arch/x86/pci/irq.c +1 more+7 -190 replies
4/20x86, irq: Convert irq_2_pin list to generic listarch/x86/include/asm/hw_irq.h arch/x86/kernel/apic/io_apic.c+12 -180 replies
5/20x86, irq: Refine hw_irq.h to prepare for irqdomain supportarch/x86/include/asm/hw_irq.h+51 -430 replies
6/20x86, irq: Rename local APIC related functions in io_apic.c as apic_xxx()arch/x86/include/asm/hw_irq.h arch/x86/kernel/apic/io_apic.c arch/x86/platform/uv/uv_irq.c+24 -240 replies
7/20x86, irq: Protect __clear_irq_vector() with vector_lockarch/x86/kernel/apic/io_apic.c+11 -80 replies
8/20x86, irq: Introduce helpers to access struct irq_cfgarch/x86/include/asm/hw_irq.h arch/x86/kernel/apic/io_apic.c+8 -10 replies
9/20x86, irq: Move local APIC related code from io_apic.c into vector.carch/x86/Kconfig arch/x86/include/asm/hw_irq.h arch/x86/kernel/apic/Makefile +3 more+709 -6840 replies
10/20x86, irq: Replace printk(KERN_LVL) with pr_lvl() utilitiesarch/x86/kernel/apic/vector.c+34 -351 reply
11/20x86, irq: Move PCI MSI related code from io_apic.c into msi.carch/x86/include/asm/io_apic.h arch/x86/include/asm/pci.h arch/x86/kernel/apic/Makefile +2 more+290 -2760 replies
12/20x86, irq: Move HT IRQ related code from io_apic.c into htirq.carch/x86/kernel/apic/Makefile arch/x86/kernel/apic/htirq.c arch/x86/kernel/apic/io_apic.c+108 -920 replies
13/20x86, irq: Move IOAPIC related declarations from hw_irq.h into io_apic.harch/x86/include/asm/hw_irq.h arch/x86/include/asm/io_apic.h arch/x86/kernel/apic/io_apic.c +5 more+35 -360 replies
14/20x86, irq: Move IRQ initialization routines from io_apic.c into vector.carch/x86/include/asm/io_apic.h arch/x86/kernel/apic/io_apic.c arch/x86/kernel/apic/vector.c+31 -210 replies
15/20x86, irq: Make MSI and HT_IRQ indepenent of X86_IO_APICarch/x86/Kconfig drivers/pci/Kconfig+3 -30 replies
16/20x86, irq: Use helpers to access irq_cfg data structure associated with IRQarch/x86/kernel/apic/htirq.c arch/x86/kernel/apic/io_apic.c arch/x86/kernel/apic/msi.c +2 more+14 -140 replies
17/20x86: irq_remapping: Use helpers to access irq_cfg data structure associated with IRQdrivers/iommu/irq_remapping.c+3 -30 replies
18/20iommu/vt-d: Use helpers to access irq_cfg data structure associated with IRQdrivers/iommu/intel_irq_remapping.c+5 -50 replies
19/20iommu/amd: Use helpers to access irq_cfg data structure associated with IRQdrivers/iommu/amd_iommu.c+7 -70 replies
20/20x86, irq: Fix link error of undefined reference to send_cleanup_vectorarch/x86/kernel/apic/vector.c+1 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [Patch Part1 v3 00/20] Prepare for enabling hierarchy irqdomain on x86

We plan to restructure x86 interrupt code based on hierarchy irqdomain, that is to build irqdomains for CPU vector, interrupt remapping unit, IOAPIC, MSI and HPET etc and orgonize those irqdomains in hierarchy mode.

This patchset is preparation work to enable hierarchy irqdomain on x86 platforms. It splits out code for vector management, MSI, HTIRQ from ioapic.c into separate files. It also introduces some helper functions to access irq_cfg, which will ease transition to hierarchy irqdomain later.

It's based on patchset at:
https://lkml.org/lkml/2014/10/27/7

And you may access it at:
https://github.com/jiangliu/linux.git irqdomain/p1v3

V2->V3:
1) Rebase to v3.18-rc2
V1->V2:
1) fix a building failure found by 0day test bed
2) rebase to latest upstream kernel

Jiang Liu (19):
ACPI, irq, x86: Get rid of special handling of GSI for ACPI SCI x86, irq, ACPI: Fix building warning of unused code x86, irq: Kill fourth parameter of IO_APIC_get_PCI_irq_vector() x86, irq: Refine hw_irq.h to prepare for irqdomain support x86, irq: Rename local APIC related functions in io_apic.c as

    apic_xxx()

x86, irq: Protect __clear_irq_vector() with vector_lock x86, irq: Introduce helpers to access struct irq_cfg x86, irq: Move local APIC related code from io_apic.c into vector.c x86, irq: Replace printk(KERN_LVL) with pr_lvl() utilities x86, irq: Move PCI MSI related code from io_apic.c into msi.c x86, irq: Move HT IRQ related code from io_apic.c into htirq.c x86, irq: Move IOAPIC related declarations from hw_irq.h into
io_apic.h
x86, irq: Move IRQ initialization routines from io_apic.c into
vector.c
x86, irq: Make MSI and HT_IRQ indepenent of X86_IO_APIC x86, irq: Use helpers to access irq_cfg data structure associated
with IRQ
x86: irq_remapping: Use helpers to access irq_cfg data structure
associated with IRQ
iommu/vt-d: Use helpers to access irq_cfg data structure associated
with IRQ
iommu/amd: Use helpers to access irq_cfg data structure associated
with IRQ
x86, irq: Fix link error of undefined reference to
send_cleanup_vector

Yinghai Lu (1):
x86, irq: Convert irq_2_pin list to generic list

 arch/x86/Kconfig                    |    6 +-
 arch/x86/include/asm/hw_irq.h       |   76 +--
 arch/x86/include/asm/io_apic.h      |   29 +-
 arch/x86/include/asm/pci.h          |    3 +
 arch/x86/kernel/acpi/boot.c         |   12 +-
 arch/x86/kernel/apic/Makefile       |    4 +-
 arch/x86/kernel/apic/htirq.c        |  107 ++++
 arch/x86/kernel/apic/io_apic.c      | 1100 ++---------------------------------
 arch/x86/kernel/apic/msi.c          |  286 +++++++++
 arch/x86/kernel/apic/vector.c       |  717 +++++++++++++++++++++++
 arch/x86/kernel/crash.c             |    1 +
 arch/x86/kernel/irqinit.c           |   22 -
 arch/x86/kernel/machine_kexec_32.c  |    1 +
 arch/x86/kernel/machine_kexec_64.c  |    1 +
 arch/x86/kernel/reboot.c            |    1 +
 arch/x86/pci/irq.c                  |    6 +-
 arch/x86/platform/uv/uv_irq.c       |    6 +-
 drivers/iommu/amd_iommu.c           |   14 +-
 drivers/iommu/intel_irq_remapping.c |   10 +-
 drivers/iommu/irq_remapping.c       |    6 +-
 drivers/pci/Kconfig                 |    2 +-
 drivers/pci/hotplug/ibmphp_core.c   |    6 +-
 22 files changed, 1238 insertions(+), 1178 deletions(-)
 create mode 100644 arch/x86/kernel/apic/htirq.c
 create mode 100644 arch/x86/kernel/apic/msi.c
 create mode 100644 arch/x86/kernel/apic/vector.c
Signature · 1 line
1.7.10.4