From: Yinghai Lu <yinghai@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
"H. Peter Anvin" <hpa@zytor.com>, Tony Luck <tony.luck@intel.com>,
Bjorn Helgaas <bhelgaas@google.com>,
"Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org, Yinghai Lu <yinghai@kernel.org>
Subject: [PATCH v5 00/33] x86, irq: Support ioapic controller hotplug
Date: Thu, 2 Jan 2014 16:05:32 -0800 [thread overview]
Message-ID: <1388707565-16535-1-git-send-email-yinghai@kernel.org> (raw)
Hi,
Intel cpu (from IVB) include cpu cores, mem controller, and IIO.
When hotplug cpu physically, it will involve cpu hotplug, mem hotplug,
and pci root hotplug.
IIO includes pci host bridge, ioapic controller and iommu etc.
pci devices will need to use ioapic and iommu.
To make pci root bus hotplug working, we need 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/alloc_reserved 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/alloc_reserved method.
5. change ioapic add/remove to use acpi way, as that is only needed when
pci root bus hotplug.
6. also 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 ioapic irq_2_pin to be generic list.
It is based on linus's tree of 2014/01/02 aka v3.11-rc6.
could get them from:
git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git for-x86-irq-3.14
-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.
-v4: address review from tglx, change to realloc to alloc_reserved.
separate x86 code and core code into different patches.
-v5: refresh to 3.13-rc6. also add patches to move resource_to_addr to generic code.
Rui Wang (1):
x86, ioapic: Hotadd of IOAPICs described in static MADT
Yinghai Lu (32):
genirq: Split __irq_reserve_irqs from irq_alloc_descs
genirq: Add irq_alloc_reserved_desc()
genirq: Do not free unallocated irq descriptors
x86, irq: Change irq_remap_modify_chip_defaults() to static
x86, irq: Modify irq chip once for irq remapping
x86, irq: Show MSI-X clearly in debug message
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
x86, irq: Add alloc_reserved_irq_and_cfg_at()
x86, irq: Move down arch_early_irq_init()
x86, irq: Split out alloc_ioapic_save_registers()
xen, irq: Call irq_alloc_reserved_desc_at() at first
x86, irq: Reserve irq range and alloc_reserved for booting path
x86, irq: Add ioapic_gsi_to_irq
x86, irq: Add for_each_ioapic helper
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, ioapic: Find usable ioapic id for 64bit.
x86: Move declaration for mp_register_ioapic()
PCI, x86: Make ioapic hotplug support built-in
ACPI: Make map_mat_entry handle x2apic entry
ACPI: Move acpi_get_cpuid() to separated file
ACPI, ioapic: Add acpi_get_ioapic_id()
PCI, x86, ACPI: Link acpi ioapic register to ioapic
PCI, x86, ACPI: Enable ioapic hotplug support with acpi host bridge.
ACPI, x86/PCI: Move resource_to_addr() to acpi generic
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 | 13 +
arch/x86/include/asm/irq_remapping.h | 14 +-
arch/x86/include/asm/mpspec.h | 20 +-
arch/x86/kernel/acpi/boot.c | 40 ++-
arch/x86/kernel/apic/apic.c | 9 +-
arch/x86/kernel/apic/io_apic.c | 485 +++++++++++++++++++++++++----------
arch/x86/kernel/devicetree.c | 2 +-
arch/x86/pci/acpi.c | 51 +---
drivers/acpi/Makefile | 1 +
drivers/acpi/apic_id.c | 294 +++++++++++++++++++++
drivers/acpi/pci_root.c | 4 +
drivers/acpi/processor_core.c | 191 --------------
drivers/acpi/resource.c | 46 ++++
drivers/iommu/amd_iommu_init.c | 2 +-
drivers/iommu/dmar.c | 2 +-
drivers/iommu/intel_irq_remapping.c | 2 +-
drivers/iommu/irq_remapping.c | 18 +-
drivers/pci/Kconfig | 3 +-
drivers/pci/ioapic.c | 230 ++++++++++++-----
drivers/xen/events.c | 8 +-
include/acpi/processor.h | 3 -
include/linux/acpi.h | 16 ++
include/linux/irq.h | 4 +
include/linux/pci-acpi.h | 8 +
kernel/irq/irqdesc.c | 80 ++++--
27 files changed, 1050 insertions(+), 508 deletions(-)
create mode 100644 drivers/acpi/apic_id.c
--
1.8.4
next reply other threads:[~2014-01-03 0:05 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-03 0:05 Yinghai Lu [this message]
2014-01-03 0:05 ` [PATCH v5 01/33] genirq: Split __irq_reserve_irqs from irq_alloc_descs Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 02/33] genirq: Add irq_alloc_reserved_desc() Yinghai Lu
2014-01-23 0:03 ` Thomas Gleixner
2014-02-18 0:59 ` Yinghai Lu
2014-02-22 10:08 ` Thomas Gleixner
2014-02-22 17:28 ` Yinghai Lu
2014-02-22 22:05 ` Yinghai Lu
2014-02-22 23:38 ` Thomas Gleixner
2014-02-25 1:31 ` Yinghai Lu
2014-02-21 6:45 ` Jiang Liu
2014-01-03 0:05 ` [PATCH v5 03/33] genirq: Do not free unallocated irq descriptors Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 04/33] x86, irq: Change irq_remap_modify_chip_defaults() to static Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 05/33] x86, irq: Modify irq chip once for irq remapping Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 06/33] x86, irq: Show MSI-X clearly in debug message Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 07/33] x86, irq: Show MSI-X in /proc/interrupt Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 08/33] x86, irq: Make dmar_msi/hpet_msi irq_chip name consistent Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 09/33] ia64, irq: Add dummy create_irq_nr() Yinghai Lu
2014-01-03 0:05 ` Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 10/33] iommu, irq: Allocate irq_desc for dmar_msi with local node Yinghai Lu
2014-02-21 7:43 ` Jiang Liu
2014-02-21 23:18 ` Yinghai Lu
2014-02-22 3:14 ` Jiang Liu
2014-02-22 7:44 ` Yinghai Lu
2014-02-22 15:33 ` Jiang Liu
2014-02-22 17:30 ` Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 11/33] x86, irq: Kill create_irq() Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 12/33] x86, irq: Convert irq_2_pin list to generic list Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 13/33] x86, irq: Add alloc_reserved_irq_and_cfg_at() Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 14/33] x86, irq: Move down arch_early_irq_init() Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 15/33] x86, irq: Split out alloc_ioapic_save_registers() Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 16/33] xen, irq: Call irq_alloc_reserved_desc_at() at first Yinghai Lu
2014-01-03 0:05 ` Yinghai Lu
2014-01-03 17:50 ` [Xen-devel] " Stefano Stabellini
2014-01-03 17:50 ` Stefano Stabellini
2014-01-06 20:00 ` Yinghai Lu
2014-01-07 13:30 ` Stefano Stabellini
2014-01-03 0:05 ` [PATCH v5 17/33] x86, irq: Reserve irq range and alloc_reserved for booting path Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 18/33] x86, irq: Add ioapic_gsi_to_irq Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 19/33] x86, irq: Add for_each_ioapic helper Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 20/33] x86, irq: More strict checking about registering ioapic Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 21/33] x86, irq: Make mp_register_ioapic handle hot-added ioapic Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 22/33] x86, irq: Add mp_unregister_ioapic to handle hot-remove ioapic Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 23/33] x86, ioapic: Find usable ioapic id for 64bit Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 24/33] x86: Move declaration for mp_register_ioapic() Yinghai Lu
2014-01-03 21:24 ` Bjorn Helgaas
2014-01-06 22:30 ` Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 25/33] PCI, x86: Make ioapic hotplug support built-in Yinghai Lu
2014-01-03 22:47 ` Bjorn Helgaas
2014-01-06 22:47 ` Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 26/33] ACPI: Make map_mat_entry handle x2apic entry Yinghai Lu
2014-01-03 0:05 ` [PATCH v5 27/33] ACPI: Move acpi_get_cpuid() to separated file Yinghai Lu
2014-01-03 0:06 ` [PATCH v5 28/33] ACPI, ioapic: Add acpi_get_ioapic_id() Yinghai Lu
2014-01-03 0:06 ` [PATCH v5 29/33] PCI, x86, ACPI: Link acpi ioapic register to ioapic Yinghai Lu
2014-01-03 0:06 ` [PATCH v5 30/33] PCI, x86, ACPI: Enable ioapic hotplug support with acpi host bridge Yinghai Lu
2014-01-03 22:39 ` Bjorn Helgaas
2014-01-03 0:06 ` [PATCH v5 31/33] ACPI, x86/PCI: Move resource_to_addr() to acpi generic Yinghai Lu
2014-01-03 0:06 ` [PATCH v5 32/33] PCI, x86, ACPI: get ioapic address from acpi device Yinghai Lu
2014-01-03 0:06 ` [PATCH v5 33/33] x86, ioapic: Hotadd of IOAPICs described in static MADT Yinghai Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1388707565-16535-1-git-send-email-yinghai@kernel.org \
--to=yinghai@kernel.org \
--cc=bhelgaas@google.com \
--cc=hpa@zytor.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rjw@sisk.pl \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.