]> rtime.felk.cvut.cz Git - jailhouse.git/commit
core: Virtualize legacy MSI for interrupt remapping support
authorJan Kiszka <jan.kiszka@siemens.com>
Sun, 27 Jul 2014 12:42:56 +0000 (14:42 +0200)
committerJan Kiszka <jan.kiszka@siemens.com>
Tue, 26 Aug 2014 17:56:49 +0000 (19:56 +0200)
commitb50614282cff3ecd62db05f10672bdf2729bc4c0
tree505325024a5cbad3c453d379bd062eb8049c5c56
parentf651754c72e31952d3ed100c51d37364bae737df
core: Virtualize legacy MSI for interrupt remapping support

Analogously to edge-triggered IOAPIC interrupts, handover all legacy
MSIs by disabling them first, programming the VT-d remapping table and
then writing remappable parameters into the MSI capability registers.
An additional triggering of active vectors ensures that we do not lose
events during handover.

Disabling is done on x86 via a trick: we program an empty CPU mask in
logical destination mode.

MSI-X remains on the to-do list. Thus, once enabling interrupt
remapping, systems that use MSI-X will become unsupported for the time
being.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
hypervisor/arch/x86/control.c
hypervisor/arch/x86/include/asm/apic.h
hypervisor/arch/x86/pci.c
hypervisor/include/jailhouse/pci.h
hypervisor/pci.c