Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
28-8 Vol. 3
HANDLING BOUNDARY CONDITIONS IN A VIRTUAL MACHINE MONITOR
need to emulate various redirection table entry settings such as delivery mode,
destination mode, delivery status, polarity, masking, and trigger mode programmed
by the guest and track remote-IRR state on guest EOI writes to various virtual local
APICs.
28.3.2.5 Virtualization of Message Signaled Interrupts
The PCI Local Bus Specification (Rev. 2.2) introduces the concept of message
signaled interrupts (MSI). MSI enable PCI devices to request service by writing a
system-specified message to a system specified address. The transaction address
specifies the message destination while the transaction data specifies the interrupt
vector, trigger mode and delivery mode. System software is expected to configure
the message data and address during MSI device configuration, allocating one or
more no-shared messages to MSI capable devices. Chapter 9, “Advanced Program-
mable Interrupt Controller (APIC),” specifies the MSI message address and data
register formats to be followed on Intel 64 and IA-32 platforms. While MSI is optional
for conventional PCI devices, it is the preferred interrupt mechanism for PCI-Express
devices.
Since the MSI address and data are configured through PCI configuration space, to
control these physical interrupts the VMM needs to assume ownership of PCI config-
uration space. This allows the VMM to capture the guest configuration of message
address and data for MSI-capable virtual and assigned guest devices. PCI configura-
tion transactions on PC-compatible systems are generated by software through two
different methods:
1. The standard CONFIG_ADDRESS/CONFIG_DATA register mechanism
(CFCH/CF8H ports) as defined in the PCI Local Bus Specification.
2. The enhanced flat memory-mapped (MEMCFG) configuration mechanism as
defined in the PCI-Express Base Specification (Rev. 1.0a.).
The CFCH/CF8H configuration access from guests can be trapped by the VMM
through use of I/O-bitmap VM-execution controls. The memory-mapped PCI-Express
MEMCFG guest configuration accesses can be trapped by VMM through physical
memory virtualization.
28.3.3 Examples of Handling of External Interrupts
The following sections illustrate interrupt processing in a VMM (when used to support
the external interrupt virtualization requirements).
28.3.3.1 Guest Setup
The VMM sets up the guest to cause a VM exit to the VMM on external interrupts. This
is done by setting the “external-interrupt exiting” VM-execution control in the guest
controlling-VMCS.