|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] xen: dom0 apic programming hooks
This series implements the hooks requires for interrupt management.
The relationship between Xen and the dom0 kernel with respect to the
interrupt hardware is interesting. Xen owns the local apics,
but the dom0 kernel is responsible for managing the IO apics.
We hook acpi_register_gsi so that when an interrupt is being
routed, we intercept the routing. Given a gsi, we allocate
ask Xen to allocate a vector for the particular io_apic+pin,
set up a pirq event channel for that vector, and route the
event channel into the normal interrupt pathways.
We reserve a range of irq space so we can 1:1 map irqs to gsis,
and then use higher irqs for Xen's event-channel-only interrupt
sources.
Despite being responsible for controlling them, dom0 kernel doesn't
have a real mapping of the IO APICs, and so must program their registers
with hypercalls. At the moment this is just done with straightforward
hooks in io_apic_read/write/etc. We could also use a io_apic_ops-style
approach, but there's not much point if there are no other users.
This series may be pulled from:
The following changes since commit 59586d42b3accf0be025139066fcd08ed96de425:
Jeremy Fitzhardinge (1):
xen/dom0/core: fix mismerge miscompilation
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git
push/xen/dom0/apic
Ian Campbell (1):
xen: pre-initialize legacy irqs early
Jeremy Fitzhardinge (9):
xen/dom0: handle acpi lapic parsing in Xen dom0
xen: hook io_apic read/write operations
xen: create dummy ioapic mapping
xen: implement pirq type event channels
x86/io_apic: add get_nr_irqs_gsi()
xen/apic: identity map gsi->irqs
xen: direct irq registration to pirq event channels
xen: bind pirq to vector and event channel
xen/apic: program the apic triggering and polarity properly
arch/x86/include/asm/io_apic.h | 7 +
arch/x86/include/asm/xen/pci.h | 13 ++
arch/x86/kernel/acpi/boot.c | 18 +++-
arch/x86/kernel/io_apic.c | 37 +++++-
arch/x86/xen/Kconfig | 11 ++
arch/x86/xen/Makefile | 3 +-
arch/x86/xen/apic.c | 57 +++++++++
arch/x86/xen/enlighten.c | 2 +
arch/x86/xen/mmu.c | 10 ++
arch/x86/xen/pci.c | 83 +++++++++++++
arch/x86/xen/xen-ops.h | 6 +
drivers/xen/events.c | 260 +++++++++++++++++++++++++++++++++++++++-
include/xen/events.h | 22 ++++
13 files changed, 521 insertions(+), 8 deletions(-)
create mode 100644 arch/x86/include/asm/xen/pci.h
create mode 100644 arch/x86/xen/apic.c
create mode 100644 arch/x86/xen/pci.c
Thanks,
J
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH] xen: dom0 apic programming hooks,
Jeremy Fitzhardinge <=
- [Xen-devel] [PATCH 03/10] xen: create dummy ioapic mapping, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 01/10] xen/dom0: handle acpi lapic parsing in Xen dom0, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 05/10] x86/io_apic: add get_nr_irqs_gsi(), Jeremy Fitzhardinge
- [Xen-devel] [PATCH 02/10] xen: hook io_apic read/write operations, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 06/10] xen/apic: identity map gsi->irqs, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 10/10] xen/apic: program the apic triggering and polarity properly, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 09/10] xen: pre-initialize legacy irqs early, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 04/10] xen: implement pirq type event channels, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 08/10] xen: bind pirq to vector and event channel, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 07/10] xen: direct irq registration to pirq event channels, Jeremy Fitzhardinge
|
|
|
|
|