Skip to content

Convert x86 to hierarchy irqdomain and stacked irqchip

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

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v8 Latest37 patches 4 repliesIn review
  2. v738 patches 1 replySuperseded
  3. v4 posting 2/238 patches 14 repliesSuperseded
Earlier versions · 7
VersionPostedPatchesRepliesStatus
v627 patches5 repliesSuperseded
v3 posting 2/238 patches2 repliesSuperseded
v531 patches4 repliesSuperseded
v4 posting 1/231 patches33 repliesSuperseded
v3 posting 1/224 patches13 repliesSuperseded
v224 patches12 repliesSuperseded
v11 patch4 repliesSuperseded

Patches in v8 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/37x86/irq: Save destination CPU ID in irq_cfgarch/x86/include/asm/hw_irq.h arch/x86/kernel/apic/vector.c+7 -00 replies
2/37x86/irq: Use hierarchy irqdomain to manage CPU interrupt vectorsarch/x86/Kconfig arch/x86/include/asm/hw_irq.h arch/x86/kernel/apic/io_apic.c +1 more+161 -180 replies
3/37x86/hpet: Use new irqdomain interfaces to allocate/free IRQarch/x86/kernel/hpet.c+5 -30 replies
4/37x86/MSI: Use new irqdomain interfaces to allocate/free IRQarch/x86/kernel/apic/msi.c+6 -80 replies
5/37x86/uv: Use new irqdomain interfaces to allocate/free IRQarch/x86/platform/uv/uv_irq.c+11 -160 replies
6/37x86/htirq: Use new irqdomain interfaces to allocate/free IRQarch/x86/kernel/apic/htirq.c drivers/pci/htirq.c include/linux/htirq.h+18 -170 replies
7/37x86/dmar: Use new irqdomain interfaces to allocate/free IRQarch/x86/include/asm/irq_remapping.h arch/x86/kernel/apic/msi.c drivers/iommu/irq_remapping.c+27 -40 replies
8/37irq_remapping: Introduce new interfaces to support hierarchy irqdomainarch/x86/include/asm/hw_irq.h arch/x86/include/asm/irq_remapping.h drivers/iommu/irq_remapping.c +1 more+132 -10 replies
9/37irq_remapping/vt-d: Change prototypes to prepare for enabling hierarchy irqdomaindrivers/iommu/intel_irq_remapping.c+11 -110 replies
10/37irq_remapping/vt-d: Enhance Intel IR driver to support hierarchy irqdomaindrivers/iommu/intel_irq_remapping.c include/linux/intel-iommu.h+333 -80 replies
11/37irq_remapping/amd: Enhance AMD IR driver to support hierarchy irqdomaindrivers/iommu/amd_iommu.c drivers/iommu/amd_iommu_init.c drivers/iommu/amd_iommu_proto.h +1 more+341 -60 replies
12/37x86/hpet: Enhance HPET IRQ to support hierarchy irqdomainarch/x86/include/asm/hpet.h arch/x86/kernel/apic/msi.c arch/x86/kernel/hpet.c+167 -630 replies
13/37x86/MSI: Use hierarchy irqdomain to manage MSI interruptsarch/x86/Kconfig arch/x86/include/asm/hw_irq.h arch/x86/include/asm/irq_remapping.h +4 more+94 -730 replies
14/37x86/irq: Directly call native_compose_msi_msg() for DMAR IRQarch/x86/kernel/apic/msi.c+2 -40 replies
15/37irq_remapping/vt-d: Clean up unused MSI related codedrivers/iommu/intel_irq_remapping.c+0 -1440 replies
16/37irq_remapping/amd: Clean up unused MSI related codedrivers/iommu/amd_iommu.c+2 -1130 replies
17/37irq_remapping: Clean up unused MSI related codearch/x86/include/asm/irq_remapping.h arch/x86/include/asm/pci.h arch/x86/kernel/x86_init.c +2 more+0 -1850 replies
18/37x86/MSI: Clean up unused MSI related code and interfacesarch/x86/include/asm/hpet.h arch/x86/include/asm/x86_init.h arch/x86/kernel/apic/msi.c+4 -640 replies
19/37iommu/vt-d: Refine the interfaces to create IRQ for DMAR unitarch/ia64/include/asm/irq_remapping.h arch/ia64/kernel/msi_ia64.c arch/x86/include/asm/irq_remapping.h +3 more+39 -430 replies
20/37x86/irq: Use hierarchy irqdomain to manage DMAR interruptsarch/x86/include/asm/hw_irq.h arch/x86/kernel/apic/msi.c+103 -570 replies
21/37x86/htirq: Use hierarchy irqdomain to manage Hypertransport interruptsarch/x86/include/asm/hw_irq.h arch/x86/kernel/apic/htirq.c arch/x86/kernel/apic/vector.c +2 more+158 -880 replies
22/37x86/uv: Use hierarchy irqdomain to manage UV interruptsarch/x86/include/asm/hw_irq.h arch/x86/platform/uv/uv_irq.c+119 -1800 replies
23/37x86/irq: Normalize x86 irq_chip namearch/x86/kernel/apic/msi.c+2 -20 replies
24/37x86/MSI: Simplify the way to deal with remapped MSI interruptsarch/x86/kernel/apic/msi.c+24 -40 replies
25/37x86/MSI: Replace msi_update_msg() with irq_chip_compose_msi_msg()arch/x86/kernel/apic/msi.c+2 -170 replies
26/37x86/irq: Implement irq_chip.irq_write_msi_msg for MSI/DMAR/HPET irq_chipsarch/x86/kernel/apic/msi.c+12 -00 replies
27/37x86/irq: Simplify MSI/DMAR/HPET implementation by using common codearch/x86/kernel/apic/msi.c+54 -1380 replies
28/37irq_remapping: Kill unused function irq_remapping_print_chip()arch/x86/include/asm/irq_remapping.h drivers/iommu/irq_remapping.c+0 -150 replies
29/37x86/intel-mid: Delay initialization of APB timerarch/x86/kernel/apb_timer.c arch/x86/platform/intel-mid/intel-mid.c arch/x86/platform/intel-mid/sfi.c+13 -110 replies
30/37x86/intel-mid, trivial: Refine code syntax for sfi_parse_mtmr()arch/x86/platform/intel-mid/sfi.c+10 -100 replies
31/37x86/irq: Kill unused pre_init_apic_IRQ0()arch/x86/include/asm/io_apic.h arch/x86/kernel/apic/io_apic.c+0 -180 replies
32/37x86/irq: Prepare IOAPIC interfaces to support hierarchy irqdomainarch/x86/include/asm/io_apic.h arch/x86/kernel/acpi/boot.c arch/x86/kernel/apic/io_apic.c +3 more+54 -220 replies
33/37x86/irq: Implement callbacks to enable hierarchy irqdomain on IOAPICsarch/x86/include/asm/io_apic.h arch/x86/kernel/apic/io_apic.c+166 -30 replies
34/37x86/irq: Refine the way to allocate irq_cfg for legacy IRQsarch/x86/kernel/apic/io_apic.c arch/x86/kernel/apic/vector.c+42 -130 replies
35/37x86/irq: Simplify the way to print IOAPIC entryarch/x86/kernel/apic/io_apic.c+28 -20 replies
36/37x86/irq: Introduce helper functions to support hierarchy irqdomain for IOAPICarch/x86/kernel/apic/io_apic.c+61 -00 replies
37/37x86/irq: Convert IOAPIC to use hierarchy irqdomain interfacesarch/x86/kernel/acpi/boot.c arch/x86/kernel/apic/io_apic.c arch/x86/kernel/devicetree.c +5 more+240 -1370 replies

Reviews trailers per patch

6 of 37 patches have a Reviewed-by or Acked-by.

PatchJoerg RoedelAndy Shevchenko
1/37
2/37
3/37
4/37
5/37
6/37
7/37
8/37A-b
9/37A-b
10/37A-b
11/37A-b
12/37
13/37
14/37
15/37A-b
16/37A-b
17/37
18/37
19/37
20/37
21/37
22/37
23/37
24/37
25/37
26/37
27/37
28/37
29/37T-b
30/37T-b
31/37T-b
32/37T-b
33/37T-b
34/37T-b
35/37T-b
36/37T-b
37/37T-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v8 thread

Cover letter [Patch Part1 v8 00/37] Convert x86 to hierarchy irqdomain and stacked irqchip

Hi all,
The generic hierarchy irqdomain and stacked irqchip implementation
has been merged into v3.19, so this patch set converts x86 interupt management to hierarchy irqdomain and stacked irqchip. You may access it at:
https://github.com/jiangliu/linux.git irqdomain/x86_p1_v8

This patch set has been reviewed several times and it missed v3.19
merging because several bugs got fixed just before the merging window. The main changes since last review are:
1) Rebased the patch set onto v4.0-rc6.
2) Merged bugfixes into the patch introducing the bug so they don't break bisecting.

I will send out another following-on patch set to clean up code and interfaces obseleted by this patch set.

Jiang Liu (36):
x86/irq: Save destination CPU ID in irq_cfg
x86/irq: Use hierarchy irqdomain to manage CPU interrupt vectors x86/hpet: Use new irqdomain interfaces to allocate/free IRQ x86/MSI: Use new irqdomain interfaces to allocate/free IRQ x86/uv: Use new irqdomain interfaces to allocate/free IRQ x86/htirq: Use new irqdomain interfaces to allocate/free IRQ x86/dmar: Use new irqdomain interfaces to allocate/free IRQ
irq_remapping: Introduce new interfaces to support hierarchy
irqdomain
irq_remapping/vt-d: Change prototypes to prepare for enabling
hierarchy irqdomain
irq_remapping/vt-d: Enhance Intel IR driver to support hierarchy
irqdomain
irq_remapping/amd: Enhance AMD IR driver to support hierarchy
irqdomain
x86/hpet: Enhance HPET IRQ to support hierarchy irqdomain x86/MSI: Use hierarchy irqdomain to manage MSI interrupts x86/irq: Directly call native_compose_msi_msg() for DMAR IRQ irq_remapping/vt-d: Clean up unused MSI related code irq_remapping/amd: Clean up unused MSI related code
irq_remapping: Clean up unused MSI related code
x86/MSI: Clean up unused MSI related code and interfaces iommu/vt-d: Refine the interfaces to create IRQ for DMAR unit x86/irq: Use hierarchy irqdomain to manage DMAR interrupts x86/htirq: Use hierarchy irqdomain to manage Hypertransport
interrupts
x86/uv: Use hierarchy irqdomain to manage UV interrupts x86/irq: Normalize x86 irq_chip name
x86/MSI: Simplify the way to deal with remapped MSI interrupts x86/MSI: Replace msi_update_msg() with irq_chip_compose_msi_msg() x86/irq: Implement irq_chip.irq_write_msi_msg for MSI/DMAR/HPET
irq_chips
x86/irq: Simplify MSI/DMAR/HPET implementation by using common code
irq_remapping: Kill unused function irq_remapping_print_chip() x86/intel-mid, trivial: Refine code syntax for sfi_parse_mtmr() x86/irq: Kill unused pre_init_apic_IRQ0()
x86/irq: Prepare IOAPIC interfaces to support hierarchy irqdomain x86/irq: Implement callbacks to enable hierarchy irqdomain on IOAPICs x86/irq: Refine the way to allocate irq_cfg for legacy IRQs x86/irq: Simplify the way to print IOAPIC entry
x86/irq: Introduce helper functions to support hierarchy irqdomain
for IOAPIC
x86/irq: Convert IOAPIC to use hierarchy irqdomain interfaces

Thomas Gleixner (1):
x86/intel-mid: Delay initialization of APB timer

 arch/ia64/include/asm/irq_remapping.h              |    2 -
 arch/ia64/kernel/msi_ia64.c                        |   30 +-
 arch/x86/Kconfig                                   |    4 +-
 arch/x86/include/asm/hpet.h                        |   16 +-
 arch/x86/include/asm/hw_irq.h                      |   91 +++
 arch/x86/include/asm/io_apic.h                     |   25 +-
 arch/x86/include/asm/irq_remapping.h               |   45 +-
 arch/x86/include/asm/msi.h                         |    7 +
 arch/x86/include/asm/pci.h                         |    5 -
 arch/x86/include/asm/x86_init.h                    |    4 -
 arch/x86/kernel/acpi/boot.c                        |   17 +-
 arch/x86/kernel/apb_timer.c                        |    4 -
 arch/x86/kernel/apic/htirq.c                       |  173 ++++--
 arch/x86/kernel/apic/io_apic.c                     |  602 +++++++++++++++-----
 arch/x86/kernel/apic/msi.c                         |  416 ++++++++------
 arch/x86/kernel/apic/vector.c                      |  205 ++++++-
 arch/x86/kernel/devicetree.c                       |   37 +-
 arch/x86/kernel/hpet.c                             |   57 +-
 arch/x86/kernel/mpparse.c                          |    6 +-
 arch/x86/kernel/x86_init.c                         |    2 -
 arch/x86/pci/intel_mid_pci.c                       |    6 +-
 .../platform/intel-mid/device_libs/platform_wdt.c  |    5 +-
 arch/x86/platform/intel-mid/intel-mid.c            |   18 +-
 arch/x86/platform/intel-mid/sfi.c                  |   30 +-
 arch/x86/platform/sfi/sfi.c                        |    5 +-
 arch/x86/platform/uv/uv_irq.c                      |  299 ++++------
 drivers/iommu/amd_iommu.c                          |  376 +++++++++---
 drivers/iommu/amd_iommu_init.c                     |    4 +
 drivers/iommu/amd_iommu_proto.h                    |    9 +
 drivers/iommu/amd_iommu_types.h                    |    5 +
 drivers/iommu/dmar.c                               |   19 +-
 drivers/iommu/intel_irq_remapping.c                |  451 ++++++++++-----
 drivers/iommu/irq_remapping.c                      |  178 ++----
 drivers/iommu/irq_remapping.h                      |   20 +-
 drivers/pci/htirq.c                                |   48 +-
 include/linux/dmar.h                               |    3 +-
 include/linux/htirq.h                              |   22 +-
 include/linux/intel-iommu.h                        |    4 +
 38 files changed, 2100 insertions(+), 1150 deletions(-)
 create mode 100644 arch/x86/include/asm/msi.h
Signature · 1 line
1.7.10.4