mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-19 12:12:16 +00:00
Documentation: update to AcrnGT official name
Update the ACRN documentation to use the official name of GVT-g in ACRN to "AcrnGT" (ACRN-GT was previously widely used). Also update the few occurences of "GVT-G" to "GVT-g" to be consistent across our documentation. This includes a couple of file name updates. Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
This commit is contained in:
parent
97aeb7f4ff
commit
047f4e90a2
@ -5,13 +5,13 @@ ACRN GVT-g APIs
|
|||||||
|
|
||||||
GVT-g is Intel's open source GPU virtualization solution and is up-streamed to
|
GVT-g is Intel's open source GPU virtualization solution and is up-streamed to
|
||||||
the Linux kernel. Its implementation over KVM is named KVMGT, over Xen it is
|
the Linux kernel. Its implementation over KVM is named KVMGT, over Xen it is
|
||||||
named XenGT, and over ACRN it is named ACRN-GT. GVT-g can exports multiple
|
named XenGT, and over ACRN it is named AcrnGT. GVT-g can exports multiple
|
||||||
virtual GPU (vGPU) instances for virtual machine system (VM). A VM could be
|
virtual GPU (vGPU) instances for virtual machine system (VM). A VM could be
|
||||||
assigned one vGPU instance. The guest OS graphic driver needs minor
|
assigned one vGPU instance. The guest OS graphic driver needs minor
|
||||||
modification to drive the vGPU adapter in a VM. Every vGPU instance will adopt
|
modification to drive the vGPU adapter in a VM. Every vGPU instance will adopt
|
||||||
the full HW GPU’s accelerate capability for 3D render and display.
|
the full HW GPU’s accelerate capability for 3D render and display.
|
||||||
|
|
||||||
In the following document, ACRN-GT refers to the glue layer between ACRN
|
In the following document, AcrnGT refers to the glue layer between ACRN
|
||||||
hypervisor and GVT-g core device model. It works as the agent of
|
hypervisor and GVT-g core device model. It works as the agent of
|
||||||
hypervisor-related services. It is the only layer that needs to get rewritten
|
hypervisor-related services. It is the only layer that needs to get rewritten
|
||||||
when porting GVT-g to another hypervisor. For simplicity, in the rest of this
|
when porting GVT-g to another hypervisor. For simplicity, in the rest of this
|
||||||
@ -47,7 +47,7 @@ Intel GVT-g Host Support(vGPU device model)
|
|||||||
:internal:
|
:internal:
|
||||||
|
|
||||||
|
|
||||||
VHM APIs called from ACRN-GT
|
VHM APIs called from AcrnGT
|
||||||
****************************
|
****************************
|
||||||
|
|
||||||
The Virtio and Hypervisor Service Module (VHM) is a kernel module in the
|
The Virtio and Hypervisor Service Module (VHM) is a kernel module in the
|
||||||
@ -83,14 +83,14 @@ responses to user space modules, notified by vIRQ injections.
|
|||||||
|
|
||||||
.. _MPT_interface:
|
.. _MPT_interface:
|
||||||
|
|
||||||
ACRN-GT mediated pass-through (MPT) interface
|
AcrnGT mediated pass-through (MPT) interface
|
||||||
**************************************************
|
**************************************************
|
||||||
|
|
||||||
ACRN-GT 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.
|
||||||
|
|
||||||
A collection of function callbacks in the MPT module will be attached to GVT
|
A collection of function callbacks in the MPT module will be attached to GVT
|
||||||
host at the driver loading stage. ACRN-GT MPT function callbacks are described
|
host at the driver loading stage. AcrnGT MPT function callbacks are described
|
||||||
as below:
|
as below:
|
||||||
|
|
||||||
|
|
||||||
@ -185,10 +185,10 @@ in the `ACRN kernel GitHub repo`_
|
|||||||
|
|
||||||
.. _sysfs_interface:
|
.. _sysfs_interface:
|
||||||
|
|
||||||
ACRN-GT sysfs interface
|
AcrnGT sysfs interface
|
||||||
***********************
|
***********************
|
||||||
|
|
||||||
This section contains APIs for the ACRN-GT sysfs interface. Sources are found
|
This section contains APIs for the AcrnGT sysfs interface. Sources are found
|
||||||
in the `ACRN kernel GitHub repo`_
|
in the `ACRN kernel GitHub repo`_
|
||||||
|
|
||||||
|
|
||||||
@ -212,7 +212,7 @@ figure out what kind of error occurs.
|
|||||||
/sys/kernel/gvt/
|
/sys/kernel/gvt/
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
The ``/sys/kernel/gvt/`` class sub-directory belongs to ACRN-GT and provides a
|
The ``/sys/kernel/gvt/`` class sub-directory belongs to AcrnGT and provides a
|
||||||
centralized sysfs interface for configuring vGPU properties.
|
centralized sysfs interface for configuring vGPU properties.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.. _APL_GVT-G-hld:
|
.. _APL_GVT-g-hld:
|
||||||
|
|
||||||
GVT-G high-level design
|
GVT-g high-level design
|
||||||
#######################
|
#######################
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
@ -55,7 +55,7 @@ native graphics driver can run directly inside a VM.
|
|||||||
Intel® GVT-g technology for Apollo Lake (APL) has been implemented in
|
Intel® GVT-g technology for Apollo Lake (APL) has been implemented in
|
||||||
open source hypervisors or Virtual Machine Monitors (VMMs):
|
open source hypervisors or Virtual Machine Monitors (VMMs):
|
||||||
|
|
||||||
- Intel® GVT-g for ACRN, also known as, "ACRN-GVT"
|
- Intel® GVT-g for ACRN, also known as, "AcrnGT"
|
||||||
- Intel® GVT-g for KVM, also known as, "KVMGT"
|
- Intel® GVT-g for KVM, also known as, "KVMGT"
|
||||||
- Intel® GVT-g for Xen, also known as, "XenGT"
|
- Intel® GVT-g for Xen, also known as, "XenGT"
|
||||||
|
|
||||||
@ -349,7 +349,7 @@ exposed by the GVT device model.
|
|||||||
:align: center
|
:align: center
|
||||||
:name: gvt-arch
|
:name: gvt-arch
|
||||||
|
|
||||||
ACRN-GVT High-level Architecture
|
AcrnGT High-level Architecture
|
||||||
|
|
||||||
Key Techniques
|
Key Techniques
|
||||||
**************
|
**************
|
||||||
@ -892,18 +892,18 @@ UOS. This policy can be enforced through an SOS i915 kernel command line
|
|||||||
parameter, and can replace the default in-order command submission (no
|
parameter, and can replace the default in-order command submission (no
|
||||||
preemption) policy.
|
preemption) policy.
|
||||||
|
|
||||||
ACRN-GT
|
AcrnGT
|
||||||
*******
|
*******
|
||||||
|
|
||||||
ACRN is a flexible, lightweight reference hypervisor, built with
|
ACRN is a flexible, lightweight reference hypervisor, built with
|
||||||
real-time and safety-criticality in mind, optimized to streamline
|
real-time and safety-criticality in mind, optimized to streamline
|
||||||
embedded development through an open source platform.
|
embedded development through an open source platform.
|
||||||
|
|
||||||
ACRN-GT is the GVT-g implementation on the ACRN hypervisor. It adapts
|
AcrnGT is the GVT-g implementation on the ACRN hypervisor. It adapts
|
||||||
the MPT interface of GVT-g onto ACRN by using the kernel APIs provided
|
the MPT interface of GVT-g onto ACRN by using the kernel APIs provided
|
||||||
by ACRN.
|
by ACRN.
|
||||||
|
|
||||||
:numref:`full-pic` shows the full architecture of ACRN-GT with a Linux Guest
|
:numref:`full-pic` shows the full architecture of AcrnGT with a Linux Guest
|
||||||
OS and an Android Guest OS.
|
OS and an Android Guest OS.
|
||||||
|
|
||||||
.. figure:: images/APL_GVT-g-full-pic.png
|
.. figure:: images/APL_GVT-g-full-pic.png
|
||||||
@ -911,16 +911,16 @@ OS and an Android Guest OS.
|
|||||||
:align: center
|
:align: center
|
||||||
:name: full-pic
|
:name: full-pic
|
||||||
|
|
||||||
Full picture of the ACRN-GT
|
Full picture of the AcrnGT
|
||||||
|
|
||||||
ACRN-GT in kernel
|
AcrnGT in kernel
|
||||||
=================
|
=================
|
||||||
|
|
||||||
The ACRN-GT module in the SOS kernel acts as an adaption layer to connect
|
The AcrnGT module in the SOS kernel acts as an adaption layer to connect
|
||||||
between GVT-g in the i915, the VHM module, and the ACRN-DM user space
|
between GVT-g in the i915, the VHM module, and the ACRN-DM user space
|
||||||
application:
|
application:
|
||||||
|
|
||||||
- ACRN-GT module implements the MPT interface of GVT-g to provide
|
- AcrnGT module implements the MPT interface of GVT-g to provide
|
||||||
services to it, including set and unset trap areas, set and unset
|
services to it, including set and unset trap areas, set and unset
|
||||||
write-protection pages, etc.
|
write-protection pages, etc.
|
||||||
|
|
||||||
@ -931,10 +931,10 @@ application:
|
|||||||
- It provides user space interfaces through ``sysfs`` to the user space
|
- It provides user space interfaces through ``sysfs`` to the user space
|
||||||
ACRN-DM, so that DM can manage the lifecycle of the virtual GPUs.
|
ACRN-DM, so that DM can manage the lifecycle of the virtual GPUs.
|
||||||
|
|
||||||
ACRN-GT in DM
|
AcrnGT in DM
|
||||||
=============
|
=============
|
||||||
|
|
||||||
To emulate a PCI device to a Guest, we need an ACRN-GT sub-module in the
|
To emulate a PCI device to a Guest, we need an AcrnGT sub-module in the
|
||||||
ACRN-DM. This sub-module is responsible for:
|
ACRN-DM. This sub-module is responsible for:
|
||||||
|
|
||||||
- registering the virtual GPU device to the PCI device tree presented to
|
- registering the virtual GPU device to the PCI device tree presented to
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.. _GVT-G-porting:
|
.. _GVT-g-porting:
|
||||||
|
|
||||||
GVT-G Enabling and Porting Guide
|
GVT-g Enabling and Porting Guide
|
||||||
################################
|
################################
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
@ -8,14 +8,14 @@ Introduction
|
|||||||
|
|
||||||
GVT-g is Intel's Open Source GPU virtualization solution, up-streamed to
|
GVT-g is Intel's Open Source GPU virtualization solution, up-streamed to
|
||||||
the Linux kernel. Its implementation over KVM is named KVMGT, over Xen
|
the Linux kernel. Its implementation over KVM is named KVMGT, over Xen
|
||||||
is named XenGT, and over ACRN is named ACRN-GT. GVT-g can export
|
is named XenGT, and over ACRN is named AcrnGT. GVT-g can export
|
||||||
multiple virtual-GPU (vGPU) instances for virtual machine (VM) system. A
|
multiple virtual-GPU (vGPU) instances for virtual machine (VM) system. A
|
||||||
VM can be assigned one instance of a vGPU. The guest OS graphic driver
|
VM can be assigned one instance of a vGPU. The guest OS graphic driver
|
||||||
needs only minor modifications to drive the vGPU adapter in a VM. Every
|
needs only minor modifications to drive the vGPU adapter in a VM. Every
|
||||||
vGPU instance adopts the full HW GPU's acceleration capability for
|
vGPU instance adopts the full HW GPU's acceleration capability for
|
||||||
media, 3D rendering, and display.
|
media, 3D rendering, and display.
|
||||||
|
|
||||||
ACRN-GT refers to the glue layer between the ACRN hypervisor and GVT-g
|
AcrnGT refers to the glue layer between the ACRN hypervisor and GVT-g
|
||||||
core device model. It works as the agent of hypervisor-related services.
|
core device model. It works as the agent of hypervisor-related services.
|
||||||
It is the only layer that needs to be rewritten when porting GVT-g to
|
It is the only layer that needs to be rewritten when porting GVT-g to
|
||||||
other specific hypervisors.
|
other specific hypervisors.
|
||||||
@ -45,14 +45,14 @@ Overall Components
|
|||||||
******************
|
******************
|
||||||
|
|
||||||
For the GVT-g solution for the ACRN hypervisor, there are two
|
For the GVT-g solution for the ACRN hypervisor, there are two
|
||||||
key modules: ACRN-GT and GVT:
|
key modules: AcrnGT and GVT:
|
||||||
|
|
||||||
ACRN-GT module
|
AcrnGT module
|
||||||
Compiled from ``drivers/gpu/drm/i915/gvt/acrn_gvt.c``, the ACRN-GT
|
Compiled from ``drivers/gpu/drm/i915/gvt/acrn_gvt.c``, the AcrnGT
|
||||||
module acts as a glue layer between the ACRN hypervisor and the
|
module acts as a glue layer between the ACRN hypervisor and the
|
||||||
interface to the ACRN-DM in user space.
|
interface to the ACRN-DM in user space.
|
||||||
|
|
||||||
ACRN-GT is the agent of hypervisor related services, including I/O trap
|
AcrnGT is the agent of hypervisor related services, including I/O trap
|
||||||
request, IRQ injection, address translation, VM controls, etc. It also
|
request, IRQ injection, address translation, VM controls, etc. It also
|
||||||
listens to ACRN hypervisor in ``acrngt_emulation_thread``, and informs GVT
|
listens to ACRN hypervisor in ``acrngt_emulation_thread``, and informs GVT
|
||||||
module of I/O traps.
|
module of I/O traps.
|
||||||
@ -61,7 +61,7 @@ ACRN-GT module
|
|||||||
Device Model's routines, and receives request from GVT module through
|
Device Model's routines, and receives request from GVT module through
|
||||||
the :ref:`MPT_interface`.
|
the :ref:`MPT_interface`.
|
||||||
|
|
||||||
User space programs, such as ACRN-DM, communicate with ACRN-GT through
|
User space programs, such as ACRN-DM, communicate with AcrnGT through
|
||||||
the :ref:`sysfs_interface` by writing to sysfs node
|
the :ref:`sysfs_interface` by writing to sysfs node
|
||||||
``/sys/kernel/gvt/control/create_gvt_instance``.
|
``/sys/kernel/gvt/control/create_gvt_instance``.
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ VHM module
|
|||||||
I/O responses to user space modules, notified by vIRQ injections.
|
I/O responses to user space modules, notified by vIRQ injections.
|
||||||
|
|
||||||
|
|
||||||
.. figure:: images/GVT-G-porting-image1.png
|
.. figure:: images/GVT-g-porting-image1.png
|
||||||
:width: 700px
|
:width: 700px
|
||||||
:align: center
|
:align: center
|
||||||
:name: GVT-g_components
|
:name: GVT-g_components
|
||||||
@ -101,27 +101,27 @@ Core scenario interaction sequences
|
|||||||
vGPU creation scenario
|
vGPU creation scenario
|
||||||
======================
|
======================
|
||||||
|
|
||||||
In this scenario, ACRN-GT receives a create request from ACRN-DM. It
|
In this scenario, AcrnGT receives a create request from ACRN-DM. It
|
||||||
calls GVT's :ref:`intel_gvt_ops_interface` to inform GVT of vGPU
|
calls GVT's :ref:`intel_gvt_ops_interface` to inform GVT of vGPU
|
||||||
creation. This interface sets up all vGPU resources such as MMIO, GMA,
|
creation. This interface sets up all vGPU resources such as MMIO, GMA,
|
||||||
PVINFO, GTT, DISPLAY, and Execlists, and calls back to the ACRN-GT
|
PVINFO, GTT, DISPLAY, and Execlists, and calls back to the AcrnGT
|
||||||
module through the :ref:`MPT_interface` ``attach_vgpu``. Then, the
|
module through the :ref:`MPT_interface` ``attach_vgpu``. Then, the
|
||||||
ACRN-GT module sets up an I/O request server and asks to trap the PCI
|
AcrnGT module sets up an I/O request server and asks to trap the PCI
|
||||||
configure space of the vGPU (virtual device 0:2:0) via VHM's APIs.
|
configure space of the vGPU (virtual device 0:2:0) via VHM's APIs.
|
||||||
Finally, the ACRN-GT module launches a ACRN-GT emulation thread to
|
Finally, the AcrnGT module launches a AcrnGT emulation thread to
|
||||||
listen to I/O trap notifications from HVM and ACRN hypervisor.
|
listen to I/O trap notifications from HVM and ACRN hypervisor.
|
||||||
|
|
||||||
vGPU destroy scenario
|
vGPU destroy scenario
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
In this scenario, ACRN-GT receives a destroy request from ACRN-DM. It
|
In this scenario, AcrnGT receives a destroy request from ACRN-DM. It
|
||||||
calls GVT's :ref:`intel_gvt_ops_interface` to inform GVT of the vGPU destroy
|
calls GVT's :ref:`intel_gvt_ops_interface` to inform GVT of the vGPU destroy
|
||||||
request, and cleans up all vGPU resources.
|
request, and cleans up all vGPU resources.
|
||||||
|
|
||||||
vGPU pci configure space write scenario
|
vGPU pci configure space write scenario
|
||||||
=======================================
|
=======================================
|
||||||
|
|
||||||
ACRN traps the vGPU's PCI config space write, notifies ACRN-GT's
|
ACRN traps the vGPU's PCI config space write, notifies AcrnGT's
|
||||||
``acrngt_emulation_thread``, which calls ``acrngt_hvm_pio_emulation`` to
|
``acrngt_emulation_thread``, which calls ``acrngt_hvm_pio_emulation`` to
|
||||||
handle all I/O trap notifications. This routine calls the GVT's
|
handle all I/O trap notifications. This routine calls the GVT's
|
||||||
:ref:`intel_gvt_ops_interface` ``emulate_cfg_write`` to emulate the vGPU PCI
|
:ref:`intel_gvt_ops_interface` ``emulate_cfg_write`` to emulate the vGPU PCI
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
@ -26,7 +26,7 @@ specific areas within the ACRN hypervisor system.
|
|||||||
ACPI-virt-hld.rst
|
ACPI-virt-hld.rst
|
||||||
interrupt-hld.rst
|
interrupt-hld.rst
|
||||||
APL_GVT-g-hld.rst
|
APL_GVT-g-hld.rst
|
||||||
GVT-G-porting.rst
|
GVT-g-porting.rst
|
||||||
|
|
||||||
Contributing to the project
|
Contributing to the project
|
||||||
***************************
|
***************************
|
||||||
|
@ -16,6 +16,9 @@ Glossary of Terms
|
|||||||
real-time and safety-criticality in mind, optimized to streamline
|
real-time and safety-criticality in mind, optimized to streamline
|
||||||
embedded development through an open source platform.
|
embedded development through an open source platform.
|
||||||
|
|
||||||
|
AcrnGT
|
||||||
|
Intel GVT-g technology for ACRN.
|
||||||
|
|
||||||
ACRN-DM
|
ACRN-DM
|
||||||
A user mode device model application running in Service OS to provide
|
A user mode device model application running in Service OS to provide
|
||||||
device emulations in ACRN hypervisor.
|
device emulations in ACRN hypervisor.
|
||||||
|
Loading…
Reference in New Issue
Block a user