From: Jiang Liu <jiang.liu@linux.intel.com>
To: Bjorn Helgaas <bhelgaas@google.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Randy Dunlap <rdunlap@infradead.org>,
Yinghai Lu <yinghai@kernel.org>, Borislav Petkov <bp@alien8.de>,
Dimitri Sivanich <sivanich@sgi.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
David Cohen <david.a.cohen@linux.intel.com>,
Sander Eikelenboom <linux@eikelenboom.it>,
David Vrabel <david.vrabel@citrix.com>,
Andrew Morton <akpm@linux-foundation.org>,
Tony Luck <tony.luck@intel.com>, Joerg Roedel <joro@8bytes.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
x86@kernel.org, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: [Patch Part1 v8 00/37] Convert x86 to hierarchy irqdomain and stacked irqchip
Date: Mon, 13 Apr 2015 14:11:22 +0800 [thread overview]
Message-ID: <1428905519-23704-1-git-send-email-jiang.liu@linux.intel.com> (raw)
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
--
1.7.10.4
next reply other threads:[~2015-04-13 6:11 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-13 6:11 Jiang Liu [this message]
2015-04-13 6:11 ` [Patch Part1 v8 01/37] x86/irq: Save destination CPU ID in irq_cfg Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 02/37] x86/irq: Use hierarchy irqdomain to manage CPU interrupt vectors Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 03/37] x86/hpet: Use new irqdomain interfaces to allocate/free IRQ Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 04/37] x86/MSI: " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 05/37] x86/uv: " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 06/37] x86/htirq: " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 07/37] x86/dmar: " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 08/37] irq_remapping: Introduce new interfaces to support hierarchy irqdomain Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 09/37] irq_remapping/vt-d: Change prototypes to prepare for enabling " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 10/37] irq_remapping/vt-d: Enhance Intel IR driver to support " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 11/37] irq_remapping/amd: Enhance AMD " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 12/37] x86/hpet: Enhance HPET IRQ " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 13/37] x86/MSI: Use hierarchy irqdomain to manage MSI interrupts Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 14/37] x86/irq: Directly call native_compose_msi_msg() for DMAR IRQ Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 15/37] irq_remapping/vt-d: Clean up unused MSI related code Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 16/37] irq_remapping/amd: " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 17/37] irq_remapping: " Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 18/37] x86/MSI: Clean up unused MSI related code and interfaces Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 19/37] iommu/vt-d: Refine the interfaces to create IRQ for DMAR unit Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 20/37] x86/irq: Use hierarchy irqdomain to manage DMAR interrupts Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 21/37] x86/htirq: Use hierarchy irqdomain to manage Hypertransport interrupts Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 22/37] x86/uv: Use hierarchy irqdomain to manage UV interrupts Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 23/37] x86/irq: Normalize x86 irq_chip name Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 24/37] x86/MSI: Simplify the way to deal with remapped MSI interrupts Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 25/37] x86/MSI: Replace msi_update_msg() with irq_chip_compose_msi_msg() Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 26/37] x86/irq: Implement irq_chip.irq_write_msi_msg for MSI/DMAR/HPET irq_chips Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 27/37] x86/irq: Simplify MSI/DMAR/HPET implementation by using common code Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 28/37] irq_remapping: Kill unused function irq_remapping_print_chip() Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 29/37] x86/intel-mid: Delay initialization of APB timer Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 30/37] x86/intel-mid, trivial: Refine code syntax for sfi_parse_mtmr() Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 31/37] x86/irq: Kill unused pre_init_apic_IRQ0() Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 32/37] x86/irq: Prepare IOAPIC interfaces to support hierarchy irqdomain Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 33/37] x86/irq: Implement callbacks to enable hierarchy irqdomain on IOAPICs Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 34/37] x86/irq: Refine the way to allocate irq_cfg for legacy IRQs Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 35/37] x86/irq: Simplify the way to print IOAPIC entry Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 36/37] x86/irq: Introduce helper functions to support hierarchy irqdomain for IOAPIC Jiang Liu
2015-04-13 6:11 ` [Patch Part1 v8 37/37] x86/irq: Convert IOAPIC to use hierarchy irqdomain interfaces Jiang Liu
2015-04-13 6:19 ` [Patch Part1 v8 00/37] Convert x86 to hierarchy irqdomain and stacked irqchip Ingo Molnar
2015-04-13 6:23 ` Jiang Liu
2015-04-13 7:09 ` Thomas Gleixner
2015-04-13 12:09 ` Rafael J. Wysocki
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=1428905519-23704-1-git-send-email-jiang.liu@linux.intel.com \
--to=jiang.liu@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=david.a.cohen@linux.intel.com \
--cc=david.vrabel@citrix.com \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=joro@8bytes.org \
--cc=konrad.wilk@oracle.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@eikelenboom.it \
--cc=mingo@redhat.com \
--cc=rdunlap@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=sivanich@sgi.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=yinghai@kernel.org \
/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 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).