linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/27] x86, irq: support ioapic device hotplug
@ 2013-06-07 22:30 Yinghai Lu
  2013-06-07 22:30 ` [PATCH v3 01/27] x86, irq: Change irq_remap_modify_chip_defaults to static Yinghai Lu
                   ` (26 more replies)
  0 siblings, 27 replies; 47+ messages in thread
From: Yinghai Lu @ 2013-06-07 22:30 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, Bjorn Helgaas,
	Rafael J. Wysocki
  Cc: linux-pci, linux-kernel, Yinghai Lu

Hi,

Intel cpu (from IVB) include cpu, mem controller, and IIO.
When hotadd cpu physically, it will involve cpu hotplug, mem hotplug,
and pci root hotplug.

IIO includes pci host bridge, ioapic controller and iommu.
pci devices will need to use ioapic and iommu.
So to make pci root bus hotplug working, we need to add ioapic hotplug support.

Now ioapics are with ACPI MADT table. During booting, kernel will parse
MADT and put info into ioapic arrays.
Also Bjorn added one pci device based driver, but it is not wired in yet,
as it need to call acpi_register_ioapic, and that is TBD.

This patchset will
1. extend genirq to support reserve/realloc method.
   because we want irqs for one ioapic controller to be linear mapping
   to the gsi range.
2. change ioapic array operation code so we could insert new ioapic and
   remove one leave the blank slot.
3. record irq_base in gsi_config in ioapic struct, and use it to convert gsi
   to irq for pci device using that ioapic controller
4. make static ioapic path (from MADT) use same code as hot-add path,
   with reserve/realloc.
5. change ioapic add/removing to use acpi way, as that is only needed when
   pci root bus hotplug. Also make it support the case that ioapic
   controller is hiding in pci config space or ioapic address is not
   managed by pci reallocation subsys.

Also include some cleanups
1. print MSI-X clearly in /proc/interrupts and dmesg.
2. convert irq_2_pin to be generic list.

It is based on linus's tree of 2013/06/07 aka v3.10-rc3+.

could get them from:
        git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git for-x86-irq

-v3: split last patch to 4 patches per request from Bjorn.
     drop one patch that will put pci device name in proc/interrupts
     update changelog.

Yinghai Lu (27):
  x86, irq: Change irq_remap_modify_chip_defaults to static
  x86, irq: Modify irq chip once for irq remapping
  x86, irq: Print out MSI/MSI-X clearly
  x86, irq: Show MSI-X in /proc/interrupt
  x86, irq: Make dmar_msi/hpet_msi irq_chip name consistent
  ia64, irq: Add dummy create_irq_nr()
  iommu, irq: Allocate irq_desc for dmar_msi with local node
  x86, irq: kill create_irq()
  x86, irq: Convert irq_2_pin list to generic list
  genirq: Split __irq_reserve_irqs from irq_alloc_descs
  x86, irq: Add realloc_irq_and_cfg_at()
  x86, irq: Move down arch_early_irq_init()
  x86, irq: Split out alloc_ioapic_save_registers()
  xen, irq: call irq_realloc_desc_at() at first
  x86, irq: pre-reserve irq range/realloc for booting path
  x86, irq: Add ioapic_gsi_to_irq
  genirq: Bail out early in free_desc()
  x86, irq: More strict checking about registering ioapic
  x86, irq: Make mp_register_ioapic handle hot-added ioapic
  x86, irq: Add mp_unregister_ioapic to handle hot-remove ioapic
  x86, irq: Make ioapics loop skip blank slots
  x86, ioapic: Find usable ioapic id for 64bit.
  x86: Move declaration for mp_register_ioapic()
  PCI, x86: Make ioapic hotplug support built-in
  PCI, x86, ACPI: Link acpi ioapic register to ioapic
  PCI, x86, ACPI: Enable ioapic hotplug support with acpi host bridge.
  PCI, x86, ACPI: get ioapic address from acpi device

 arch/ia64/kernel/irq_ia64.c          |  10 +
 arch/x86/include/asm/hw_irq.h        |   2 +-
 arch/x86/include/asm/io_apic.h       |   7 +
 arch/x86/include/asm/irq_remapping.h |   6 -
 arch/x86/include/asm/mpspec.h        |  21 +-
 arch/x86/kernel/acpi/boot.c          |  32 +--
 arch/x86/kernel/apic/apic.c          |   9 +-
 arch/x86/kernel/apic/io_apic.c       | 441 ++++++++++++++++++++++++++---------
 drivers/acpi/pci_root.c              |   4 +
 drivers/iommu/dmar.c                 |   2 +-
 drivers/iommu/irq_remapping.c        |  16 +-
 drivers/pci/Kconfig                  |   3 +-
 drivers/pci/ioapic.c                 | 232 ++++++++++++------
 drivers/xen/events.c                 |   8 +-
 include/linux/irq.h                  |   6 +
 include/linux/pci-acpi.h             |   8 +
 kernel/irq/irqdesc.c                 |  83 +++++--
 17 files changed, 650 insertions(+), 240 deletions(-)

-- 
1.8.1.4


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

end of thread, other threads:[~2013-06-11 21:52 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-07 22:30 [PATCH v3 00/27] x86, irq: support ioapic device hotplug Yinghai Lu
2013-06-07 22:30 ` [PATCH v3 01/27] x86, irq: Change irq_remap_modify_chip_defaults to static Yinghai Lu
2013-06-07 22:30 ` [PATCH v3 02/27] x86, irq: Modify irq chip once for irq remapping Yinghai Lu
2013-06-09 14:54   ` Sebastian Andrzej Siewior
2013-06-10 23:17     ` Yinghai Lu
2013-06-07 22:30 ` [PATCH v3 03/27] x86, irq: Print out MSI/MSI-X clearly Yinghai Lu
2013-06-07 22:30 ` [PATCH v3 04/27] x86, irq: Show MSI-X in /proc/interrupt Yinghai Lu
2013-06-07 22:30 ` [PATCH v3 05/27] x86, irq: Make dmar_msi/hpet_msi irq_chip name consistent Yinghai Lu
2013-06-09 15:16   ` Sebastian Andrzej Siewior
2013-06-10 23:40     ` Yinghai Lu
2013-06-07 22:30 ` [PATCH v3 06/27] ia64, irq: Add dummy create_irq_nr() Yinghai Lu
2013-06-09 15:22   ` Sebastian Andrzej Siewior
2013-06-10 23:41     ` Yinghai Lu
2013-06-11 21:52       ` Luck, Tony
2013-06-07 22:30 ` [PATCH v3 07/27] iommu, irq: Allocate irq_desc for dmar_msi with local node Yinghai Lu
2013-06-09 15:31   ` Sebastian Andrzej Siewior
2013-06-10 23:43     ` Yinghai Lu
2013-06-07 22:30 ` [PATCH v3 08/27] x86, irq: kill create_irq() Yinghai Lu
2013-06-09 15:35   ` Sebastian Andrzej Siewior
2013-06-07 22:30 ` [PATCH v3 09/27] x86, irq: Convert irq_2_pin list to generic list Yinghai Lu
2013-06-09 15:52   ` Sebastian Andrzej Siewior
2013-06-07 22:30 ` [PATCH v3 10/27] genirq: Split __irq_reserve_irqs from irq_alloc_descs Yinghai Lu
2013-06-10 13:51   ` Alexander Gordeev
2013-06-10 19:16     ` Yinghai Lu
2013-06-10 19:42       ` Alexander Gordeev
2013-06-10 19:39   ` Thomas Gleixner
2013-06-10 23:55     ` Yinghai Lu
2013-06-07 22:30 ` [PATCH v3 11/27] x86, irq: Add realloc_irq_and_cfg_at() Yinghai Lu
2013-06-09 19:13   ` Sebastian Andrzej Siewior
2013-06-10 20:13   ` Thomas Gleixner
2013-06-07 22:30 ` [PATCH v3 12/27] x86, irq: Move down arch_early_irq_init() Yinghai Lu
2013-06-07 22:30 ` [PATCH v3 13/27] x86, irq: Split out alloc_ioapic_save_registers() Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 14/27] xen, irq: call irq_realloc_desc_at() at first Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 15/27] x86, irq: pre-reserve irq range/realloc for booting path Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 16/27] x86, irq: Add ioapic_gsi_to_irq Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 17/27] genirq: Bail out early in free_desc() Yinghai Lu
2013-06-10 20:43   ` Thomas Gleixner
2013-06-07 22:31 ` [PATCH v3 18/27] x86, irq: More strict checking about registering ioapic Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 19/27] x86, irq: Make mp_register_ioapic handle hot-added ioapic Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 20/27] x86, irq: Add mp_unregister_ioapic to handle hot-remove ioapic Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 21/27] x86, irq: Make ioapics loop skip blank slots Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 22/27] x86, ioapic: Find usable ioapic id for 64bit Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 23/27] x86: Move declaration for mp_register_ioapic() Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 24/27] PCI, x86: Make ioapic hotplug support built-in Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 25/27] PCI, x86, ACPI: Link acpi ioapic register to ioapic Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 26/27] PCI, x86, ACPI: Enable ioapic hotplug support with acpi host bridge Yinghai Lu
2013-06-07 22:31 ` [PATCH v3 27/27] PCI, x86, ACPI: get ioapic address from acpi device Yinghai Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).