mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-28 00:06:55 +00:00
doc: consistent spelling of passthrough
Attempt to replace all the variations of "pass-thru", "pass thru", "pass through", and "pass-through" to be "passthrough" (except for doc labels and in code or API uses) Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
This commit is contained in:
parent
380cd7f33e
commit
922129cad4
@ -83,8 +83,8 @@ responses to user space modules, notified by vIRQ injections.
|
|||||||
|
|
||||||
.. _MPT_interface:
|
.. _MPT_interface:
|
||||||
|
|
||||||
AcrnGT mediated pass-through (MPT) interface
|
AcrnGT mediated passthrough (MPT) interface
|
||||||
**************************************************
|
*******************************************
|
||||||
|
|
||||||
AcrnGT receives request from GVT module through MPT interface. Refer to the
|
AcrnGT receives request from GVT module through MPT interface. Refer to the
|
||||||
:ref:`Graphic_mediation` page.
|
:ref:`Graphic_mediation` page.
|
||||||
|
@ -17,7 +17,7 @@ SoCs.
|
|||||||
This document describes:
|
This document describes:
|
||||||
|
|
||||||
- The different GPU virtualization techniques
|
- The different GPU virtualization techniques
|
||||||
- GVT-g mediated pass-through
|
- GVT-g mediated passthrough
|
||||||
- High level design
|
- High level design
|
||||||
- Key components
|
- Key components
|
||||||
- GVT-g new architecture differentiation
|
- GVT-g new architecture differentiation
|
||||||
@ -47,7 +47,7 @@ Background
|
|||||||
|
|
||||||
Intel GVT-g is an enabling technology in emerging graphics
|
Intel GVT-g is an enabling technology in emerging graphics
|
||||||
virtualization scenarios. It adopts a full GPU virtualization approach
|
virtualization scenarios. It adopts a full GPU virtualization approach
|
||||||
based on mediated pass-through technology, to achieve good performance,
|
based on mediated passthrough technology, to achieve good performance,
|
||||||
scalability and secure isolation among Virtual Machines (VMs). A virtual
|
scalability and secure isolation among Virtual Machines (VMs). A virtual
|
||||||
GPU (vGPU), with full GPU features, is presented to each VM so that a
|
GPU (vGPU), with full GPU features, is presented to each VM so that a
|
||||||
native graphics driver can run directly inside a VM.
|
native graphics driver can run directly inside a VM.
|
||||||
@ -161,10 +161,10 @@ also suffers from the following intrinsic limitations:
|
|||||||
exhibit quite different performance, which gives rise to a need for a
|
exhibit quite different performance, which gives rise to a need for a
|
||||||
fine-grained graphics tuning effort.
|
fine-grained graphics tuning effort.
|
||||||
|
|
||||||
Direct Pass-Through
|
Direct Passthrough
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
"Direct pass-through" dedicates the GPU to a single VM, providing full
|
"Direct passthrough" dedicates the GPU to a single VM, providing full
|
||||||
features and good performance, but at the cost of device sharing
|
features and good performance, but at the cost of device sharing
|
||||||
capability among VMs. Only one VM at a time can use the hardware
|
capability among VMs. Only one VM at a time can use the hardware
|
||||||
acceleration capability of the GPU, which is a major limitation of this
|
acceleration capability of the GPU, which is a major limitation of this
|
||||||
@ -177,7 +177,7 @@ solution. Intel GVT-d uses this mechanism.
|
|||||||
:align: center
|
:align: center
|
||||||
:name: gvt-pass-through
|
:name: gvt-pass-through
|
||||||
|
|
||||||
Pass-Through
|
Passthrough
|
||||||
|
|
||||||
SR-IOV
|
SR-IOV
|
||||||
------
|
------
|
||||||
@ -188,16 +188,16 @@ with each VF directly assignable to a VM.
|
|||||||
|
|
||||||
.. _Graphic_mediation:
|
.. _Graphic_mediation:
|
||||||
|
|
||||||
Mediated Pass-Through
|
Mediated Passthrough
|
||||||
*********************
|
*********************
|
||||||
|
|
||||||
Intel GVT-g achieves full GPU virtualization using a "mediated
|
Intel GVT-g achieves full GPU virtualization using a "mediated
|
||||||
pass-through" technique.
|
passthrough" technique.
|
||||||
|
|
||||||
Concept
|
Concept
|
||||||
=======
|
=======
|
||||||
|
|
||||||
Mediated pass-through allows a VM to access performance-critical I/O
|
Mediated passthrough allows a VM to access performance-critical I/O
|
||||||
resources (usually partitioned) directly, without intervention from the
|
resources (usually partitioned) directly, without intervention from the
|
||||||
hypervisor in most cases. Privileged operations from this VM are
|
hypervisor in most cases. Privileged operations from this VM are
|
||||||
trapped-and-emulated to provide secure isolation among VMs.
|
trapped-and-emulated to provide secure isolation among VMs.
|
||||||
@ -207,7 +207,7 @@ trapped-and-emulated to provide secure isolation among VMs.
|
|||||||
:align: center
|
:align: center
|
||||||
:name: mediated-pass-through
|
:name: mediated-pass-through
|
||||||
|
|
||||||
Mediated Pass-Through
|
Mediated Passthrough
|
||||||
|
|
||||||
The Hypervisor must ensure that no vulnerability is exposed when
|
The Hypervisor must ensure that no vulnerability is exposed when
|
||||||
assigning performance-critical resource to each VM. When a
|
assigning performance-critical resource to each VM. When a
|
||||||
@ -229,7 +229,7 @@ Examples of performance-critical I/O resources include the following:
|
|||||||
Performance-Critical I/O Resources
|
Performance-Critical I/O Resources
|
||||||
|
|
||||||
|
|
||||||
The key to implementing mediated pass-through for a specific device is
|
The key to implementing mediated passthrough for a specific device is
|
||||||
to define the right policy for various I/O resources.
|
to define the right policy for various I/O resources.
|
||||||
|
|
||||||
Virtualization Policies for GPU Resources
|
Virtualization Policies for GPU Resources
|
||||||
@ -317,7 +317,7 @@ High Level Architecture
|
|||||||
:numref:`gvt-arch` shows the overall architecture of GVT-g, based on the
|
:numref:`gvt-arch` shows the overall architecture of GVT-g, based on the
|
||||||
ACRN hypervisor, with Service VM as the privileged VM, and multiple user
|
ACRN hypervisor, with Service VM as the privileged VM, and multiple user
|
||||||
guests. A GVT-g device model working with the ACRN hypervisor,
|
guests. A GVT-g device model working with the ACRN hypervisor,
|
||||||
implements the policies of trap and pass-through. Each guest runs the
|
implements the policies of trap and passthrough. Each guest runs the
|
||||||
native graphics driver and can directly access performance-critical
|
native graphics driver and can directly access performance-critical
|
||||||
resources: the Frame Buffer and Command Buffer, with resource
|
resources: the Frame Buffer and Command Buffer, with resource
|
||||||
partitioning (as presented later). To protect privileged resources, that
|
partitioning (as presented later). To protect privileged resources, that
|
||||||
@ -331,14 +331,14 @@ concurrently with the CPU scheduler in ACRN to share the physical GPU
|
|||||||
timeslot among the VMs. GVT-g uses the physical GPU to directly execute
|
timeslot among the VMs. GVT-g uses the physical GPU to directly execute
|
||||||
all the commands submitted from a VM, so it avoids the complexity of
|
all the commands submitted from a VM, so it avoids the complexity of
|
||||||
emulating the Render Engine, which is the most complex part of the GPU.
|
emulating the Render Engine, which is the most complex part of the GPU.
|
||||||
In the meantime, the resource pass-through of both the Frame Buffer and
|
In the meantime, the resource passthrough of both the Frame Buffer and
|
||||||
Command Buffer minimizes the hypervisor's intervention of CPU accesses,
|
Command Buffer minimizes the hypervisor's intervention of CPU accesses,
|
||||||
while the GPU scheduler guarantees every VM a quantum time-slice for
|
while the GPU scheduler guarantees every VM a quantum time-slice for
|
||||||
direct GPU execution. With that, GVT-g can achieve near-native
|
direct GPU execution. With that, GVT-g can achieve near-native
|
||||||
performance for a VM workload.
|
performance for a VM workload.
|
||||||
|
|
||||||
In :numref:`gvt-arch`, the yellow GVT device model works as a client on
|
In :numref:`gvt-arch`, the yellow GVT device model works as a client on
|
||||||
top of an i915 driver in the Service VM. It has a generic Mediated Pass-Through
|
top of an i915 driver in the Service VM. It has a generic Mediated Passthrough
|
||||||
(MPT) interface, compatible with all types of hypervisors. For ACRN,
|
(MPT) interface, compatible with all types of hypervisors. For ACRN,
|
||||||
some extra development work is needed for such MPT interfaces. For
|
some extra development work is needed for such MPT interfaces. For
|
||||||
example, we need some changes in ACRN-DM to make ACRN compatible with
|
example, we need some changes in ACRN-DM to make ACRN compatible with
|
||||||
@ -795,7 +795,7 @@ the shadow PTE entries.
|
|||||||
Per-VM Shadow PPGTT
|
Per-VM Shadow PPGTT
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
To support local graphics memory access pass-through, GVT-g implements
|
To support local graphics memory access passthrough, GVT-g implements
|
||||||
per-VM shadow local page tables. The local graphics memory is only
|
per-VM shadow local page tables. The local graphics memory is only
|
||||||
accessible from the Render Engine. The local page tables have two-level
|
accessible from the Render Engine. The local page tables have two-level
|
||||||
paging structures, as shown in :numref:`per-vm-shadow`.
|
paging structures, as shown in :numref:`per-vm-shadow`.
|
||||||
|
@ -1189,8 +1189,8 @@ and waits for a resume signal. When the User VM should exit from S3, DM will
|
|||||||
get a wakeup signal and reset the User VM to emulate the User VM exit from
|
get a wakeup signal and reset the User VM to emulate the User VM exit from
|
||||||
S3.
|
S3.
|
||||||
|
|
||||||
Pass-through in Device Model
|
Passthrough in Device Model
|
||||||
****************************
|
****************************
|
||||||
|
|
||||||
You may refer to :ref:`hv-device-passthrough` for pass-through realization
|
You may refer to :ref:`hv-device-passthrough` for passthrough realization
|
||||||
in device model.
|
in device model.
|
||||||
|
@ -61,7 +61,7 @@ for its RT VM:
|
|||||||
|
|
||||||
- CAT (Cache Allocation Technology)
|
- CAT (Cache Allocation Technology)
|
||||||
- MBA (Memory Bandwidth Allocation)
|
- MBA (Memory Bandwidth Allocation)
|
||||||
- LAPIC pass-thru
|
- LAPIC passthrough
|
||||||
- Polling mode driver
|
- Polling mode driver
|
||||||
- ART (always running timer)
|
- ART (always running timer)
|
||||||
- other TCC features like split lock detection, Pseudo locking for cache
|
- other TCC features like split lock detection, Pseudo locking for cache
|
||||||
@ -109,7 +109,7 @@ separate instrument cluster VM is started after the User VM is booted.
|
|||||||
:numref:`overview-arch1.0` shows the architecture of ACRN 1.0 together with
|
:numref:`overview-arch1.0` shows the architecture of ACRN 1.0 together with
|
||||||
the IC VM and Service VM. As shown, the Service VM owns most of platform devices and
|
the IC VM and Service VM. As shown, the Service VM owns most of platform devices and
|
||||||
provides I/O mediation to VMs. Some of the PCIe devices function as a
|
provides I/O mediation to VMs. Some of the PCIe devices function as a
|
||||||
pass-through mode to User VMs according to VM configuration. In addition,
|
passthrough mode to User VMs according to VM configuration. In addition,
|
||||||
the Service VM could run the IC applications and HV helper applications such
|
the Service VM could run the IC applications and HV helper applications such
|
||||||
as the Device Model, VM manager, etc. where the VM manager is responsible
|
as the Device Model, VM manager, etc. where the VM manager is responsible
|
||||||
for VM start/stop/pause, virtual CPU pause/resume, etc.
|
for VM start/stop/pause, virtual CPU pause/resume, etc.
|
||||||
@ -136,7 +136,7 @@ compared to ACRN 1.0 is that:
|
|||||||
interference between different VMs
|
interference between different VMs
|
||||||
|
|
||||||
- ACRN 2.0 supports RT VM for a post-launched User VM, with assistant features like LAPIC
|
- ACRN 2.0 supports RT VM for a post-launched User VM, with assistant features like LAPIC
|
||||||
pass-thru and PMD virtio driver
|
passthrough and PMD virtio driver
|
||||||
|
|
||||||
ACRN 2.0 is still WIP, and some of its features are already merged in the master.
|
ACRN 2.0 is still WIP, and some of its features are already merged in the master.
|
||||||
|
|
||||||
@ -162,12 +162,12 @@ ACRN adopts various approaches for emulating devices for the User VM:
|
|||||||
- para-virtualized, requiring front-end drivers in
|
- para-virtualized, requiring front-end drivers in
|
||||||
the User VM to function.
|
the User VM to function.
|
||||||
|
|
||||||
- **Pass-through device**: A device passed through to the User VM is fully
|
- **Passthrough device**: A device passed through to the User VM is fully
|
||||||
accessible to the User VM without interception. However, interrupts
|
accessible to the User VM without interception. However, interrupts
|
||||||
are first handled by the hypervisor before
|
are first handled by the hypervisor before
|
||||||
being injected to the User VM.
|
being injected to the User VM.
|
||||||
|
|
||||||
- **Mediated pass-through device**: A mediated pass-through device is a
|
- **Mediated passthrough device**: A mediated passthrough device is a
|
||||||
hybrid of the previous two approaches. Performance-critical
|
hybrid of the previous two approaches. Performance-critical
|
||||||
resources (mostly data-plane related) are passed-through to the User VMs and
|
resources (mostly data-plane related) are passed-through to the User VMs and
|
||||||
others (mostly control-plane related) are emulated.
|
others (mostly control-plane related) are emulated.
|
||||||
@ -275,7 +275,7 @@ used by commercial OS).
|
|||||||
|
|
||||||
- On top of vCPUs are three components for device emulation: one for
|
- On top of vCPUs are three components for device emulation: one for
|
||||||
emulation inside the hypervisor, another for communicating with
|
emulation inside the hypervisor, another for communicating with
|
||||||
the Service VM for mediation, and the third for managing pass-through
|
the Service VM for mediation, and the third for managing passthrough
|
||||||
devices.
|
devices.
|
||||||
|
|
||||||
- The highest layer is a VM management module providing
|
- The highest layer is a VM management module providing
|
||||||
@ -311,7 +311,7 @@ based on command line configurations.
|
|||||||
Based on a VHM kernel module, DM interacts with VM manager to create the User
|
Based on a VHM kernel module, DM interacts with VM manager to create the User
|
||||||
VM. It then emulates devices through full virtualization on the DM user
|
VM. It then emulates devices through full virtualization on the DM user
|
||||||
level, or para-virtualized based on kernel mediator (such as virtio,
|
level, or para-virtualized based on kernel mediator (such as virtio,
|
||||||
GVT), or pass-through based on kernel VHM APIs.
|
GVT), or passthrough based on kernel VHM APIs.
|
||||||
|
|
||||||
Refer to :ref:`hld-devicemodel` for more details.
|
Refer to :ref:`hld-devicemodel` for more details.
|
||||||
|
|
||||||
@ -592,6 +592,6 @@ Some details about the ACPI table for the User and Service VMs:
|
|||||||
knows which register the User VM writes to trigger power state
|
knows which register the User VM writes to trigger power state
|
||||||
transitions. Device Model must register an I/O handler for it.
|
transitions. Device Model must register an I/O handler for it.
|
||||||
|
|
||||||
- The ACPI table in the Service VM is passthru. There is no ACPI parser
|
- The ACPI table in the Service VM is passthrough. There is no ACPI parser
|
||||||
in ACRN HV. The power management related ACPI table is
|
in ACRN HV. The power management related ACPI table is
|
||||||
generated offline and hardcoded in ACRN HV.
|
generated offline and hardcoded in ACRN HV.
|
||||||
|
@ -19,7 +19,7 @@ for the Device Model to build a virtual ACPI table.
|
|||||||
The Px/Cx data includes four
|
The Px/Cx data includes four
|
||||||
ACPI objects: _PCT, _PPC, and _PSS for P-state management, and _CST for
|
ACPI objects: _PCT, _PPC, and _PSS for P-state management, and _CST for
|
||||||
C-state management. All these ACPI data must be consistent with the
|
C-state management. All these ACPI data must be consistent with the
|
||||||
native data because the control method is a kind of pass through.
|
native data because the control method is a kind of passthrough.
|
||||||
|
|
||||||
These ACPI objects data are parsed by an offline tool and hard-coded in a
|
These ACPI objects data are parsed by an offline tool and hard-coded in a
|
||||||
Hypervisor module named CPU state table:
|
Hypervisor module named CPU state table:
|
||||||
|
@ -11,10 +11,10 @@ to manage interrupts and exceptions, as shown in
|
|||||||
:numref:`interrupt-modules-overview`. In its native layer, it configures
|
:numref:`interrupt-modules-overview`. In its native layer, it configures
|
||||||
the physical PIC, IOAPIC, and LAPIC to support different interrupt
|
the physical PIC, IOAPIC, and LAPIC to support different interrupt
|
||||||
sources from the local timer/IPI to the external INTx/MSI. In its virtual guest
|
sources from the local timer/IPI to the external INTx/MSI. In its virtual guest
|
||||||
layer, it emulates virtual PIC, virtual IOAPIC, and virtual LAPIC/pass-thru
|
layer, it emulates virtual PIC, virtual IOAPIC, and virtual LAPIC/passthrough
|
||||||
LAPIC. It provides full APIs, allowing virtual interrupt injection from
|
LAPIC. It provides full APIs, allowing virtual interrupt injection from
|
||||||
emulated or pass-thru devices. The contents in this section do not include
|
emulated or passthrough devices. The contents in this section do not include
|
||||||
the pass-thru LAPIC case. For the pass-thru LAPIC, refer to
|
the passthrough LAPIC case. For the passthrough LAPIC, refer to
|
||||||
:ref:`lapic_passthru`
|
:ref:`lapic_passthru`
|
||||||
|
|
||||||
.. figure:: images/interrupt-image3.png
|
.. figure:: images/interrupt-image3.png
|
||||||
@ -29,10 +29,10 @@ the ACRN hypervisor sets up the physical interrupt in its basic
|
|||||||
interrupt modules (e.g., IOAPIC/LAPIC/IDT). It dispatches the interrupt
|
interrupt modules (e.g., IOAPIC/LAPIC/IDT). It dispatches the interrupt
|
||||||
in the hypervisor interrupt flow control layer to the corresponding
|
in the hypervisor interrupt flow control layer to the corresponding
|
||||||
handlers; this could be pre-defined IPI notification, timer, or runtime
|
handlers; this could be pre-defined IPI notification, timer, or runtime
|
||||||
registered pass-thru devices. The ACRN hypervisor then uses its VM
|
registered passthrough devices. The ACRN hypervisor then uses its VM
|
||||||
interfaces based on vPIC, vIOAPIC, and vMSI modules, to inject the
|
interfaces based on vPIC, vIOAPIC, and vMSI modules, to inject the
|
||||||
necessary virtual interrupt into the specific VM, or directly deliver
|
necessary virtual interrupt into the specific VM, or directly deliver
|
||||||
interrupt to the specific RT VM with pass-thru LAPIC.
|
interrupt to the specific RT VM with passthrough LAPIC.
|
||||||
|
|
||||||
.. figure:: images/interrupt-image2.png
|
.. figure:: images/interrupt-image2.png
|
||||||
:align: center
|
:align: center
|
||||||
@ -100,7 +100,7 @@ Physical Interrupt Initialization
|
|||||||
After ACRN hypervisor gets control from the bootloader, it
|
After ACRN hypervisor gets control from the bootloader, it
|
||||||
initializes all physical interrupt-related modules for all the CPUs. ACRN
|
initializes all physical interrupt-related modules for all the CPUs. ACRN
|
||||||
hypervisor creates a framework to manage the physical interrupt for
|
hypervisor creates a framework to manage the physical interrupt for
|
||||||
hypervisor local devices, pass-thru devices, and IPI between CPUs, as
|
hypervisor local devices, passthrough devices, and IPI between CPUs, as
|
||||||
shown in :numref:`hv-interrupt-init`:
|
shown in :numref:`hv-interrupt-init`:
|
||||||
|
|
||||||
.. figure:: images/interrupt-image66.png
|
.. figure:: images/interrupt-image66.png
|
||||||
@ -323,7 +323,7 @@ there are three different handling flows according to flags:
|
|||||||
|
|
||||||
- ``IRQF_LEVEL && IRQF_PT``
|
- ``IRQF_LEVEL && IRQF_PT``
|
||||||
|
|
||||||
For pass-thru devices, to avoid continuous interrupt triggers, it masks
|
For passthrough devices, to avoid continuous interrupt triggers, it masks
|
||||||
the IOAPIC pin and leaves it unmasked until corresponding vIOAPIC
|
the IOAPIC pin and leaves it unmasked until corresponding vIOAPIC
|
||||||
pin gets an explicit EOI ACK from guest.
|
pin gets an explicit EOI ACK from guest.
|
||||||
|
|
||||||
|
@ -141,26 +141,26 @@ Port I/O is supported for PCI device config space 0xcfc and 0xcf8, vUART
|
|||||||
host-bridge at BDF (Bus Device Function) 0.0:0 to each guest. Access to
|
host-bridge at BDF (Bus Device Function) 0.0:0 to each guest. Access to
|
||||||
256 bytes of config space for virtual host bridge is emulated.
|
256 bytes of config space for virtual host bridge is emulated.
|
||||||
|
|
||||||
I/O - Pass-thru devices
|
I/O - Passthrough devices
|
||||||
=======================
|
=========================
|
||||||
|
|
||||||
ACRN, in partition mode, supports passing thru PCI devices on the
|
ACRN, in partition mode, supports passing thru PCI devices on the
|
||||||
platform. All the pass-thru devices are exposed as child devices under
|
platform. All the passthrough devices are exposed as child devices under
|
||||||
the virtual host bridge. ACRN does not support either passing thru
|
the virtual host bridge. ACRN does not support either passing thru
|
||||||
bridges or emulating virtual bridges. Pass-thru devices should be
|
bridges or emulating virtual bridges. Passthrough devices should be
|
||||||
statically allocated to each guest using the guest configuration. ACRN
|
statically allocated to each guest using the guest configuration. ACRN
|
||||||
expects the developer to provide the virtual BDF to BDF of the
|
expects the developer to provide the virtual BDF to BDF of the
|
||||||
physical device mapping for all the pass-thru devices as part of each guest
|
physical device mapping for all the passthrough devices as part of each guest
|
||||||
configuration.
|
configuration.
|
||||||
|
|
||||||
Runtime ACRN support for guests
|
Runtime ACRN support for guests
|
||||||
*******************************
|
*******************************
|
||||||
|
|
||||||
ACRN, in partition mode, supports an option to pass-thru LAPIC of the
|
ACRN, in partition mode, supports an option to passthrough LAPIC of the
|
||||||
physical CPUs to the guest. ACRN expects developers to specify if the
|
physical CPUs to the guest. ACRN expects developers to specify if the
|
||||||
guest needs LAPIC pass-thru using guest configuration. When guest
|
guest needs LAPIC passthrough using guest configuration. When guest
|
||||||
configures vLAPIC as x2APIC, and if the guest configuration has LAPIC
|
configures vLAPIC as x2APIC, and if the guest configuration has LAPIC
|
||||||
pass-thru enabled, ACRN passes the LAPIC to the guest. Guest can access
|
passthrough enabled, ACRN passes the LAPIC to the guest. Guest can access
|
||||||
the LAPIC hardware directly without hypervisor interception. During
|
the LAPIC hardware directly without hypervisor interception. During
|
||||||
runtime of the guest, this option differentiates how ACRN supports
|
runtime of the guest, this option differentiates how ACRN supports
|
||||||
inter-processor interrupt handling and device interrupt handling. This
|
inter-processor interrupt handling and device interrupt handling. This
|
||||||
@ -181,18 +181,18 @@ the Service VM startup in sharing mode.
|
|||||||
Inter-processor Interrupt (IPI) Handling
|
Inter-processor Interrupt (IPI) Handling
|
||||||
========================================
|
========================================
|
||||||
|
|
||||||
Guests w/o LAPIC pass-thru
|
Guests w/o LAPIC passthrough
|
||||||
--------------------------
|
----------------------------
|
||||||
|
|
||||||
For guests without LAPIC pass-thru, IPIs between guest CPUs are handled in
|
For guests without LAPIC passthrough, IPIs between guest CPUs are handled in
|
||||||
the same way as sharing mode in ACRN. Refer to :ref:`virtual-interrupt-hld`
|
the same way as sharing mode in ACRN. Refer to :ref:`virtual-interrupt-hld`
|
||||||
for more details.
|
for more details.
|
||||||
|
|
||||||
Guests w/ LAPIC pass-thru
|
Guests w/ LAPIC passthrough
|
||||||
-------------------------
|
---------------------------
|
||||||
|
|
||||||
ACRN supports pass-thru if and only if the guest is using x2APIC mode
|
ACRN supports passthrough if and only if the guest is using x2APIC mode
|
||||||
for the vLAPIC. In LAPIC pass-thru mode, writes to the Interrupt Command
|
for the vLAPIC. In LAPIC passthrough mode, writes to the Interrupt Command
|
||||||
Register (ICR) x2APIC MSR is intercepted. Guest writes the IPI info,
|
Register (ICR) x2APIC MSR is intercepted. Guest writes the IPI info,
|
||||||
including vector, and destination APIC IDs to the ICR. Upon an IPI request
|
including vector, and destination APIC IDs to the ICR. Upon an IPI request
|
||||||
from the guest, ACRN does a sanity check on the destination processors
|
from the guest, ACRN does a sanity check on the destination processors
|
||||||
@ -204,8 +204,8 @@ corresponding to the destination processor info in the ICR.
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
|
|
||||||
Pass-thru device support
|
Passthrough device support
|
||||||
========================
|
==========================
|
||||||
|
|
||||||
Configuration space access
|
Configuration space access
|
||||||
--------------------------
|
--------------------------
|
||||||
@ -217,7 +217,7 @@ Address registers (BAR), offsets starting from 0x10H to 0x24H, provide
|
|||||||
the information about the resources (I/O and MMIO) used by the PCI
|
the information about the resources (I/O and MMIO) used by the PCI
|
||||||
device. ACRN virtualizes the BAR registers and for the rest of the
|
device. ACRN virtualizes the BAR registers and for the rest of the
|
||||||
config space, forwards reads and writes to the physical config space of
|
config space, forwards reads and writes to the physical config space of
|
||||||
pass-thru devices. Refer to the `I/O`_ section below for more details.
|
passthrough devices. Refer to the `I/O`_ section below for more details.
|
||||||
|
|
||||||
.. figure:: images/partition-image1.png
|
.. figure:: images/partition-image1.png
|
||||||
:align: center
|
:align: center
|
||||||
@ -226,16 +226,16 @@ pass-thru devices. Refer to the `I/O`_ section below for more details.
|
|||||||
DMA
|
DMA
|
||||||
---
|
---
|
||||||
|
|
||||||
ACRN developers need to statically define the pass-thru devices for each
|
ACRN developers need to statically define the passthrough devices for each
|
||||||
guest using the guest configuration. For devices to DMA to/from guest
|
guest using the guest configuration. For devices to DMA to/from guest
|
||||||
memory directly, ACRN parses the list of pass-thru devices for each
|
memory directly, ACRN parses the list of passthrough devices for each
|
||||||
guest and creates context entries in the VT-d remapping hardware. EPT
|
guest and creates context entries in the VT-d remapping hardware. EPT
|
||||||
page tables created for the guest are used for VT-d page tables.
|
page tables created for the guest are used for VT-d page tables.
|
||||||
|
|
||||||
I/O
|
I/O
|
||||||
---
|
---
|
||||||
|
|
||||||
ACRN supports I/O for pass-thru devices with two restrictions.
|
ACRN supports I/O for passthrough devices with two restrictions.
|
||||||
|
|
||||||
1) Supports only MMIO. Thus, this requires developers to expose I/O BARs as
|
1) Supports only MMIO. Thus, this requires developers to expose I/O BARs as
|
||||||
not present in the guest configuration.
|
not present in the guest configuration.
|
||||||
@ -244,7 +244,7 @@ ACRN supports I/O for pass-thru devices with two restrictions.
|
|||||||
|
|
||||||
As the guest PCI sub-system scans the PCI bus and assigns a Guest Physical
|
As the guest PCI sub-system scans the PCI bus and assigns a Guest Physical
|
||||||
Address (GPA) to the MMIO BAR, ACRN maps the GPA to the address in the
|
Address (GPA) to the MMIO BAR, ACRN maps the GPA to the address in the
|
||||||
physical BAR of the pass-thru device using EPT. The following timeline chart
|
physical BAR of the passthrough device using EPT. The following timeline chart
|
||||||
explains how PCI devices are assigned to guest and BARs are mapped upon
|
explains how PCI devices are assigned to guest and BARs are mapped upon
|
||||||
guest initialization.
|
guest initialization.
|
||||||
|
|
||||||
@ -255,14 +255,14 @@ guest initialization.
|
|||||||
Interrupt Configuration
|
Interrupt Configuration
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
ACRN supports both legacy (INTx) and MSI interrupts for pass-thru
|
ACRN supports both legacy (INTx) and MSI interrupts for passthrough
|
||||||
devices.
|
devices.
|
||||||
|
|
||||||
INTx support
|
INTx support
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
ACRN expects developers to identify the interrupt line info (0x3CH) from
|
ACRN expects developers to identify the interrupt line info (0x3CH) from
|
||||||
the physical BAR of the pass-thru device and build an interrupt entry in
|
the physical BAR of the passthrough device and build an interrupt entry in
|
||||||
the mptable for the corresponding guest. As guest configures the vIOAPIC
|
the mptable for the corresponding guest. As guest configures the vIOAPIC
|
||||||
for the interrupt RTE, ACRN writes the info from the guest RTE into the
|
for the interrupt RTE, ACRN writes the info from the guest RTE into the
|
||||||
physical IOAPIC RTE. Upon the guest kernel request to mask the interrupt,
|
physical IOAPIC RTE. Upon the guest kernel request to mask the interrupt,
|
||||||
@ -275,8 +275,8 @@ MSI support
|
|||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
|
||||||
Guest reads/writes to PCI configuration space for configuring MSI
|
Guest reads/writes to PCI configuration space for configuring MSI
|
||||||
interrupts using an address. Data and control registers are pass-thru to
|
interrupts using an address. Data and control registers are passthrough to
|
||||||
the physical BAR of the pass-thru device. Refer to `Configuration
|
the physical BAR of the passthrough device. Refer to `Configuration
|
||||||
space access`_ for details on how the PCI configuration space is emulated.
|
space access`_ for details on how the PCI configuration space is emulated.
|
||||||
|
|
||||||
Virtual device support
|
Virtual device support
|
||||||
@ -291,8 +291,8 @@ writes are discarded.
|
|||||||
Interrupt delivery
|
Interrupt delivery
|
||||||
==================
|
==================
|
||||||
|
|
||||||
Guests w/o LAPIC pass-thru
|
Guests w/o LAPIC passthrough
|
||||||
--------------------------
|
----------------------------
|
||||||
|
|
||||||
In partition mode of ACRN, interrupts stay disabled after a vmexit. The
|
In partition mode of ACRN, interrupts stay disabled after a vmexit. The
|
||||||
processor does not take interrupts when it is executing in VMX root
|
processor does not take interrupts when it is executing in VMX root
|
||||||
@ -307,10 +307,10 @@ for device interrupts.
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
|
|
||||||
Guests w/ LAPIC pass-thru
|
Guests w/ LAPIC passthrough
|
||||||
-------------------------
|
---------------------------
|
||||||
|
|
||||||
For guests with LAPIC pass-thru, ACRN does not configure vmexit upon
|
For guests with LAPIC passthrough, ACRN does not configure vmexit upon
|
||||||
external interrupts. There is no vmexit upon device interrupts and they are
|
external interrupts. There is no vmexit upon device interrupts and they are
|
||||||
handled by the guest IDT.
|
handled by the guest IDT.
|
||||||
|
|
||||||
@ -320,15 +320,15 @@ Hypervisor IPI service
|
|||||||
ACRN needs IPIs for events such as flushing TLBs across CPUs, sending virtual
|
ACRN needs IPIs for events such as flushing TLBs across CPUs, sending virtual
|
||||||
device interrupts (e.g. vUART to vCPUs), and others.
|
device interrupts (e.g. vUART to vCPUs), and others.
|
||||||
|
|
||||||
Guests w/o LAPIC pass-thru
|
Guests w/o LAPIC passthrough
|
||||||
--------------------------
|
----------------------------
|
||||||
|
|
||||||
Hypervisor IPIs work the same way as in sharing mode.
|
Hypervisor IPIs work the same way as in sharing mode.
|
||||||
|
|
||||||
Guests w/ LAPIC pass-thru
|
Guests w/ LAPIC passthrough
|
||||||
-------------------------
|
---------------------------
|
||||||
|
|
||||||
Since external interrupts are pass-thru to the guest IDT, IPIs do not
|
Since external interrupts are passthrough to the guest IDT, IPIs do not
|
||||||
trigger vmexit. ACRN uses NMI delivery mode and the NMI exiting is
|
trigger vmexit. ACRN uses NMI delivery mode and the NMI exiting is
|
||||||
chosen for vCPUs. At the time of NMI interrupt on the target processor,
|
chosen for vCPUs. At the time of NMI interrupt on the target processor,
|
||||||
if the processor is in non-root mode, vmexit happens on the processor
|
if the processor is in non-root mode, vmexit happens on the processor
|
||||||
@ -344,8 +344,8 @@ For a guest console in partition mode, ACRN provides an option to pass
|
|||||||
``vmid`` as an argument to ``vm_console``. vmid is the same as the one
|
``vmid`` as an argument to ``vm_console``. vmid is the same as the one
|
||||||
developers use in the guest configuration.
|
developers use in the guest configuration.
|
||||||
|
|
||||||
Guests w/o LAPIC pass-thru
|
Guests w/o LAPIC passthrough
|
||||||
--------------------------
|
----------------------------
|
||||||
|
|
||||||
Works the same way as sharing mode.
|
Works the same way as sharing mode.
|
||||||
|
|
||||||
@ -354,7 +354,7 @@ Hypervisor Console
|
|||||||
|
|
||||||
ACRN uses the TSC deadline timer to provide a timer service. The hypervisor
|
ACRN uses the TSC deadline timer to provide a timer service. The hypervisor
|
||||||
console uses a timer on CPU0 to poll characters on the serial device. To
|
console uses a timer on CPU0 to poll characters on the serial device. To
|
||||||
support LAPIC pass-thru, the TSC deadline MSR is pass-thru and the local
|
support LAPIC passthrough, the TSC deadline MSR is passthrough and the local
|
||||||
timer interrupt is also delivered to the guest IDT. Instead of the TSC
|
timer interrupt is also delivered to the guest IDT. Instead of the TSC
|
||||||
deadline timer, ACRN uses the VMX preemption timer to poll the serial device.
|
deadline timer, ACRN uses the VMX preemption timer to poll the serial device.
|
||||||
|
|
||||||
|
@ -8,16 +8,16 @@ management, which includes:
|
|||||||
|
|
||||||
- VCPU request for virtual interrupt kick off,
|
- VCPU request for virtual interrupt kick off,
|
||||||
- vPIC/vIOAPIC/vLAPIC for virtual interrupt injection interfaces,
|
- vPIC/vIOAPIC/vLAPIC for virtual interrupt injection interfaces,
|
||||||
- physical-to-virtual interrupt mapping for a pass-thru device, and
|
- physical-to-virtual interrupt mapping for a passthrough device, and
|
||||||
- the process of VMX interrupt/exception injection.
|
- the process of VMX interrupt/exception injection.
|
||||||
|
|
||||||
A standard VM never owns any physical interrupts; all interrupts received by the
|
A standard VM never owns any physical interrupts; all interrupts received by the
|
||||||
Guest OS come from a virtual interrupt injected by vLAPIC, vIOAPIC, or
|
Guest OS come from a virtual interrupt injected by vLAPIC, vIOAPIC, or
|
||||||
vPIC. Such virtual interrupts are triggered either from a pass-through
|
vPIC. Such virtual interrupts are triggered either from a passthrough
|
||||||
device or from I/O mediators in the Service VM via hypercalls. The
|
device or from I/O mediators in the Service VM via hypercalls. The
|
||||||
:ref:`interrupt-remapping` section discusses how the hypervisor manages
|
:ref:`interrupt-remapping` section discusses how the hypervisor manages
|
||||||
the mapping between physical and virtual interrupts for pass-through
|
the mapping between physical and virtual interrupts for passthrough
|
||||||
devices. However, a hard RT VM with LAPIC pass-through does own the physical
|
devices. However, a hard RT VM with LAPIC passthrough does own the physical
|
||||||
maskable external interrupts. On its physical CPUs, interrupts are disabled
|
maskable external interrupts. On its physical CPUs, interrupts are disabled
|
||||||
in VMX root mode, while in VMX non-root mode, physical interrupts will be
|
in VMX root mode, while in VMX non-root mode, physical interrupts will be
|
||||||
delivered to RT VM directly.
|
delivered to RT VM directly.
|
||||||
@ -64,7 +64,7 @@ will send an IPI to kick it out, which leads to an external-interrupt
|
|||||||
VM-Exit. In some cases, there is no need to send IPI when making a request,
|
VM-Exit. In some cases, there is no need to send IPI when making a request,
|
||||||
because the CPU making the request itself is the target VCPU. For
|
because the CPU making the request itself is the target VCPU. For
|
||||||
example, the #GP exception request always happens on the current CPU when it
|
example, the #GP exception request always happens on the current CPU when it
|
||||||
finds an invalid emulation has happened. An external interrupt for a pass-thru
|
finds an invalid emulation has happened. An external interrupt for a passthrough
|
||||||
device always happens on the VCPUs of the VM which this device is belonged to,
|
device always happens on the VCPUs of the VM which this device is belonged to,
|
||||||
so after it triggers an external-interrupt VM-Exit, the current CPU is the very
|
so after it triggers an external-interrupt VM-Exit, the current CPU is the very
|
||||||
target VCPU.
|
target VCPU.
|
||||||
@ -93,7 +93,7 @@ APIs are invoked when an interrupt source from vLAPIC needs to inject
|
|||||||
an interrupt, for example:
|
an interrupt, for example:
|
||||||
|
|
||||||
- from LVT like LAPIC timer
|
- from LVT like LAPIC timer
|
||||||
- from vIOAPIC for a pass-thru device interrupt
|
- from vIOAPIC for a passthrough device interrupt
|
||||||
- from an emulated device for a MSI
|
- from an emulated device for a MSI
|
||||||
|
|
||||||
These APIs will finish by making a vCPU request.
|
These APIs will finish by making a vCPU request.
|
||||||
@ -134,7 +134,7 @@ LAPIC passthrough based on vLAPIC
|
|||||||
|
|
||||||
LAPIC passthrough is supported based on vLAPIC, the guest OS first boots with
|
LAPIC passthrough is supported based on vLAPIC, the guest OS first boots with
|
||||||
vLAPIC in xAPIC mode and then switches to x2APIC mode to enable the LAPIC
|
vLAPIC in xAPIC mode and then switches to x2APIC mode to enable the LAPIC
|
||||||
pass-through.
|
passthrough.
|
||||||
|
|
||||||
In case of LAPIC passthrough based on vLAPIC, the system will have the
|
In case of LAPIC passthrough based on vLAPIC, the system will have the
|
||||||
following characteristics.
|
following characteristics.
|
||||||
|
@ -92,7 +92,7 @@ The components are listed as follows.
|
|||||||
* **Device Emulation** This component implements devices that are emulated in
|
* **Device Emulation** This component implements devices that are emulated in
|
||||||
the hypervisor itself, such as the virtual programmable interrupt controllers
|
the hypervisor itself, such as the virtual programmable interrupt controllers
|
||||||
including vPIC, vLAPIC and vIOAPIC.
|
including vPIC, vLAPIC and vIOAPIC.
|
||||||
* **Passthru Management** This component manages devices that are passed-through
|
* **Passthrough Management** This component manages devices that are passed-through
|
||||||
to specific VMs.
|
to specific VMs.
|
||||||
* **Extended Device Emulation** This component implements an I/O request
|
* **Extended Device Emulation** This component implements an I/O request
|
||||||
mechanism that allow the hypervisor to forward I/O accesses from a User
|
mechanism that allow the hypervisor to forward I/O accesses from a User
|
||||||
|
@ -581,7 +581,7 @@ The following table shows some use cases of module level configuration design:
|
|||||||
* - Configuration data provided by BSP
|
* - Configuration data provided by BSP
|
||||||
- This module is used to virtualize LAPIC, and the configuration data is
|
- This module is used to virtualize LAPIC, and the configuration data is
|
||||||
provided by BSP.
|
provided by BSP.
|
||||||
For example, some VMs use LAPIC pass-through and the other VMs use
|
For example, some VMs use LAPIC passthrough and the other VMs use
|
||||||
vLAPIC.
|
vLAPIC.
|
||||||
- If a function pointer is used, the prerequisite is
|
- If a function pointer is used, the prerequisite is
|
||||||
"hv_operation_mode == OPERATIONAL".
|
"hv_operation_mode == OPERATIONAL".
|
||||||
|
@ -122,9 +122,9 @@ Glossary of Terms
|
|||||||
OSPM
|
OSPM
|
||||||
Operating System Power Management
|
Operating System Power Management
|
||||||
|
|
||||||
Pass-Through Device
|
Passthrough Device
|
||||||
Physical devices (typically PCI) exclusively assigned to a guest. In
|
Physical devices (typically PCI) exclusively assigned to a guest. In
|
||||||
the Project ACRN architecture, pass-through devices are owned by the
|
the Project ACRN architecture, passthrough devices are owned by the
|
||||||
foreground OS.
|
foreground OS.
|
||||||
|
|
||||||
Partition Mode
|
Partition Mode
|
||||||
|
@ -585,7 +585,7 @@ hypervisor, or in user space within an independent VM, overhead exists.
|
|||||||
This overhead is worthwhile as long as the devices need to be shared by
|
This overhead is worthwhile as long as the devices need to be shared by
|
||||||
multiple guest operating systems. If sharing is not necessary, then
|
multiple guest operating systems. If sharing is not necessary, then
|
||||||
there are more efficient methods for accessing devices, for example
|
there are more efficient methods for accessing devices, for example
|
||||||
"pass-through".
|
"passthrough".
|
||||||
|
|
||||||
ACRN device model is a placeholder of the User VM. It allocates memory for
|
ACRN device model is a placeholder of the User VM. It allocates memory for
|
||||||
the User OS, configures and initializes the devices used by the User VM,
|
the User OS, configures and initializes the devices used by the User VM,
|
||||||
@ -635,10 +635,10 @@ ACRN Device model incorporates these three aspects:
|
|||||||
|
|
||||||
.. _pass-through:
|
.. _pass-through:
|
||||||
|
|
||||||
Device pass through
|
Device passthrough
|
||||||
*******************
|
******************
|
||||||
|
|
||||||
At the highest level, device pass-through is about providing isolation
|
At the highest level, device passthrough is about providing isolation
|
||||||
of a device to a given guest operating system so that the device can be
|
of a device to a given guest operating system so that the device can be
|
||||||
used exclusively by that guest.
|
used exclusively by that guest.
|
||||||
|
|
||||||
@ -662,8 +662,8 @@ Finally, there may be specialized PCI devices that only one guest domain
|
|||||||
uses, so they should be passed through to the guest. Individual USB
|
uses, so they should be passed through to the guest. Individual USB
|
||||||
ports could be isolated to a given domain too, or a serial port (which
|
ports could be isolated to a given domain too, or a serial port (which
|
||||||
is itself not shareable) could be isolated to a particular guest. In
|
is itself not shareable) could be isolated to a particular guest. In
|
||||||
ACRN hypervisor, we support USB controller Pass through only and we
|
ACRN hypervisor, we support USB controller passthrough only and we
|
||||||
don't support pass through for a legacy serial port, (for example
|
don't support passthrough for a legacy serial port, (for example
|
||||||
0x3f8).
|
0x3f8).
|
||||||
|
|
||||||
|
|
||||||
@ -671,7 +671,7 @@ Hardware support for device passthrough
|
|||||||
=======================================
|
=======================================
|
||||||
|
|
||||||
Intel's current processor architectures provides support for device
|
Intel's current processor architectures provides support for device
|
||||||
pass-through with VT-d. VT-d maps guest physical address to machine
|
passthrough with VT-d. VT-d maps guest physical address to machine
|
||||||
physical address, so device can use guest physical address directly.
|
physical address, so device can use guest physical address directly.
|
||||||
When this mapping occurs, the hardware takes care of access (and
|
When this mapping occurs, the hardware takes care of access (and
|
||||||
protection), and the guest operating system can use the device as if it
|
protection), and the guest operating system can use the device as if it
|
||||||
@ -694,9 +694,9 @@ Hypervisor support for device passthrough
|
|||||||
|
|
||||||
By using the latest virtualization-enhanced processor architectures,
|
By using the latest virtualization-enhanced processor architectures,
|
||||||
hypervisors and virtualization solutions can support device
|
hypervisors and virtualization solutions can support device
|
||||||
pass-through (using VT-d), including Xen, KVM, and ACRN hypervisor.
|
passthrough (using VT-d), including Xen, KVM, and ACRN hypervisor.
|
||||||
In most cases, the guest operating system (User
|
In most cases, the guest operating system (User
|
||||||
OS) must be compiled to support pass-through, by using
|
OS) must be compiled to support passthrough, by using
|
||||||
kernel build-time options. Hiding the devices from the host VM may also
|
kernel build-time options. Hiding the devices from the host VM may also
|
||||||
be required (as is done with Xen using pciback). Some restrictions apply
|
be required (as is done with Xen using pciback). Some restrictions apply
|
||||||
in PCI, for example, PCI devices behind a PCIe-to-PCI bridge must be
|
in PCI, for example, PCI devices behind a PCIe-to-PCI bridge must be
|
||||||
|
@ -18,7 +18,7 @@ the ``help`` command within the ACRN shell.
|
|||||||
An example
|
An example
|
||||||
**********
|
**********
|
||||||
|
|
||||||
As an example, we'll show how to obtain the interrupts of a pass-through USB device.
|
As an example, we'll show how to obtain the interrupts of a passthrough USB device.
|
||||||
|
|
||||||
First, we can get the USB controller BDF number (0:15.0) through the
|
First, we can get the USB controller BDF number (0:15.0) through the
|
||||||
following command in the Service VM console::
|
following command in the Service VM console::
|
||||||
|
@ -16,10 +16,10 @@ Run RTVM with dedicated resources/devices
|
|||||||
|
|
||||||
For best practice, ACRN allocates dedicated CPU, memory resources, and cache resources (using Intel
|
For best practice, ACRN allocates dedicated CPU, memory resources, and cache resources (using Intel
|
||||||
Resource Directory allocation Technology such as CAT, MBA) to RTVMs. For best real time performance
|
Resource Directory allocation Technology such as CAT, MBA) to RTVMs. For best real time performance
|
||||||
of I/O devices, we recommend using dedicated (pass-thru) PCIe devices to avoid VM-Exit at run time.
|
of I/O devices, we recommend using dedicated (passthrough) PCIe devices to avoid VM-Exit at run time.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The configuration space for pass-thru PCI devices is still emulated and accessing it will
|
The configuration space for passthrough PCI devices is still emulated and accessing it will
|
||||||
trigger a VM-Exit.
|
trigger a VM-Exit.
|
||||||
|
|
||||||
RTVM with virtio PMD (Polling Mode Driver) for I/O sharing
|
RTVM with virtio PMD (Polling Mode Driver) for I/O sharing
|
||||||
|
@ -33,7 +33,7 @@ The ACRN hypervisor shell supports the following commands:
|
|||||||
* - int
|
* - int
|
||||||
- List interrupt information per CPU
|
- List interrupt information per CPU
|
||||||
* - pt
|
* - pt
|
||||||
- Show pass-through device information
|
- Show passthrough device information
|
||||||
* - vioapic <vm_id>
|
* - vioapic <vm_id>
|
||||||
- Show virtual IOAPIC (vIOAPIC) information for a specific VM
|
- Show virtual IOAPIC (vIOAPIC) information for a specific VM
|
||||||
* - dump_ioapic
|
* - dump_ioapic
|
||||||
@ -184,7 +184,7 @@ IRQ vector number, etc.
|
|||||||
pt
|
pt
|
||||||
==
|
==
|
||||||
|
|
||||||
``pt`` provides pass-through detailed information, such as the virtual
|
``pt`` provides passthrough detailed information, such as the virtual
|
||||||
machine number, interrupt type, interrupt request, interrupt vector,
|
machine number, interrupt type, interrupt request, interrupt vector,
|
||||||
trigger mode, etc.
|
trigger mode, etc.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user