From: Jiang Liu <jiang.liu@linux.intel.com>
To: 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>,
Bjorn Helgaas <bhelgaas@google.com>,
Randy Dunlap <rdunlap@infradead.org>,
Yinghai Lu <yinghai@kernel.org>, Borislav Petkov <bp@alien8.de>,
Grant Likely <grant.likely@linaro.org>,
Marc Zyngier <marc.zyngier@arm.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.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,
linux-arm-kernel@lists.infradead.org
Subject: [RFC Part2 v1 00/21] Enable hierarchy irqdomian on x86 platforms
Date: Thu, 11 Sep 2014 22:03:27 +0800 [thread overview]
Message-ID: <1410444228-3134-1-git-send-email-jiang.liu@linux.intel.com> (raw)
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 organize those irqdomains in hierarchy mode.
Each irqdomain manages corresponding interrupt controller and talks to
parent interrupt controller through public irqdomain interfaces. We also
support stacked irq_chip based on hierarchy irqdomain. It will make the
x86 interrupt architecture much more clear and more easy to maintain
with hierarchy irqdomain and stacked irq_chip. It may also help ARM
interrupt management architecture too.
This is the second patch set to enable support of hierarchy irqdomain
on x86 platforms. It depends on the first part at:
https://lkml.org/lkml/2014/9/11/101
And you may access it at:
https://github.com/jiangliu/linux.git irqdomain/p2v1
And there will be a third patch set to convert IOAPIC driver to support
hierarchy irqdomain and clean up code.
The first patch extends irqdomain interfaces to support hierarchy
irqdomain. Hope this interface could be used by other architectures too,
such as ARM/ARM64.
The second patch introduces two helper functions to support stacked
irq_chip.
Patch 3-9 implements an irqdomain to manange CPU interrupt vectors, and
it's the root irqdomain for x86 platforms.
Patch 10-13 converts Intel and AMD interrupt remapping drivers to
support hierarchy irqdomain.
Patch 14-17 converts HPET, MSI and HT_IRQ drivers to support hierarchy
irqdomain.
Patch 18-21 cleans up unsued code in x86 arch and interrupt remapping
drivers.
We have tested this patchset on Intel 32-bit and 64-bit systems. But we
have only done compilation tests for HT_IRQ and AMD interrupt remapping
drivers due to hardware resource limitation. Tests on AMD platforms are
warmly welcomed!
Jiang Liu (21):
irqdomain: Introduce new interfaces to support hierarchy irqdomains
genirq: Introduce helper functions to support stacked irq_chip
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
x86: irq_remapping: Introduce new interfaces to support hierarchy
irqdomain
iommu/vt-d: Change prototypes to prepare for enabling hierarchy
irqdomain
iommu/vt-d: Enhance Intel IR driver to suppport hierarchy irqdomain
iommu/amd: Enhance AMD IR driver to suppport 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
x86, htirq: Use hierarchy irqdomain to manage Hypertransport
interrupts
iommu/vt-d: Clean up unused MSI related code
iommu/amd: Clean up unused MSI related code
x86: irq_remapping: Clean up unused MSI related code
x86, irq: Clean up unused MSI related code and interfaces
arch/x86/Kconfig | 3 +-
arch/x86/include/asm/hpet.h | 16 +-
arch/x86/include/asm/hw_irq.h | 64 +++++
arch/x86/include/asm/irq_remapping.h | 66 +++--
arch/x86/include/asm/pci.h | 5 -
arch/x86/include/asm/x86_init.h | 4 -
arch/x86/kernel/apic/htirq.c | 179 +++++++++----
arch/x86/kernel/apic/io_apic.c | 3 -
arch/x86/kernel/apic/msi.c | 430 +++++++++++++++++++++++--------
arch/x86/kernel/apic/vector.c | 158 +++++++++++-
arch/x86/kernel/hpet.c | 57 ++---
arch/x86/kernel/x86_init.c | 2 -
arch/x86/platform/uv/uv_irq.c | 27 +-
drivers/iommu/amd_iommu.c | 385 ++++++++++++++++++++++------
drivers/iommu/amd_iommu_init.c | 4 +
drivers/iommu/amd_iommu_proto.h | 9 +
drivers/iommu/amd_iommu_types.h | 5 +
drivers/iommu/intel_irq_remapping.c | 468 +++++++++++++++++++++++-----------
drivers/iommu/irq_remapping.c | 221 ++++++----------
drivers/iommu/irq_remapping.h | 22 +-
drivers/pci/htirq.c | 48 +---
include/linux/htirq.h | 22 +-
include/linux/intel-iommu.h | 4 +
include/linux/irq.h | 8 +
include/linux/irqdomain.h | 60 +++++
kernel/irq/Kconfig | 3 +
kernel/irq/chip.c | 21 ++
kernel/irq/irqdomain.c | 349 ++++++++++++++++++++++++-
28 files changed, 1934 insertions(+), 709 deletions(-)
--
1.7.10.4
next reply other threads:[~2014-09-11 14:03 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-11 14:03 Jiang Liu [this message]
2014-09-11 14:03 ` [RFC Part2 v1 01/21] irqdomain: Introduce new interfaces to support hierarchy irqdomains Jiang Liu
2014-09-16 17:43 ` Thomas Gleixner
2014-09-18 7:28 ` Jiang Liu
2014-09-22 8:17 ` [Patch] " Jiang Liu
2014-09-22 17:30 ` Randy Dunlap
2014-09-24 5:26 ` Jiang Liu
[not found] ` <1411465402.8922.126.camel@mtksdaap41>
2014-09-24 5:55 ` Jiang Liu
[not found] ` <1411030087.14746.2.camel@mtksdaap41>
2014-09-18 8:58 ` [RFC Part2 v1 01/21] " Jiang Liu
2014-09-24 6:55 ` Yasuaki Ishimatsu
2014-09-24 7:23 ` Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 02/21] genirq: Introduce helper functions to support stacked irq_chip Jiang Liu
2014-09-16 17:45 ` Thomas Gleixner
2014-09-17 3:07 ` Jiang Liu
2014-09-17 20:58 ` Thomas Gleixner
2014-09-18 6:14 ` Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 03/21] x86, irq: Save destination CPU ID in irq_cfg Jiang Liu
2014-09-16 17:47 ` Thomas Gleixner
2014-09-17 2:24 ` Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 04/21] x86, irq: Use hierarchy irqdomain to manage CPU interrupt vectors Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 05/21] x86, hpet: Use new irqdomain interfaces to allocate/free IRQ Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 06/21] x86, MSI: " Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 07/21] x86, uv: " Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 08/21] x86, htirq: " Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 09/21] x86, dmar: " Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 10/21] x86: irq_remapping: Introduce new interfaces to support hierarchy irqdomain Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 11/21] iommu/vt-d: Change prototypes to prepare for enabling " Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 12/21] iommu/vt-d: Enhance Intel IR driver to suppport " Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 13/21] iommu/amd: Enhance AMD " Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 14/21] x86, hpet: Enhance HPET IRQ to support " Jiang Liu
2014-09-16 18:31 ` Thomas Gleixner
2014-09-17 5:16 ` Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 15/21] x86, MSI: Use hierarchy irqdomain to manage MSI interrupts Jiang Liu
2014-09-11 14:17 ` Ni, Xun
2014-09-11 14:29 ` Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 16/21] x86, irq: Directly call native_compose_msi_msg() for DMAR IRQ Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 17/21] x86, htirq: Use hierarchy irqdomain to manage Hypertransport interrupts Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 18/21] iommu/vt-d: Clean up unused MSI related code Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 19/21] iommu/amd: " Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 20/21] x86: irq_remapping: " Jiang Liu
2014-09-11 14:03 ` [RFC Part2 v1 21/21] x86, irq: Clean up unused MSI related code and interfaces Jiang Liu
2014-09-24 7:59 ` [RFC Part2 v1 00/21] Enable hierarchy irqdomian on x86 platforms Yasuaki Ishimatsu
2014-09-24 8:10 ` Jiang Liu
2014-09-24 8:12 ` Yasuaki Ishimatsu
2014-09-24 19:25 ` Thomas Gleixner
2014-09-25 8:15 ` Yasuaki Ishimatsu
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=1410444228-3134-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=grant.likely@linaro.org \
--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-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=mingo@redhat.com \
--cc=rdunlap@infradead.org \
--cc=rjw@rjwysocki.net \
--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).