diff --git a/doc/api/GVT-g_api.rst b/doc/api/GVT-g_api.rst index 0b9907ceb..ddc78b42c 100644 --- a/doc/api/GVT-g_api.rst +++ b/doc/api/GVT-g_api.rst @@ -5,13 +5,13 @@ ACRN GVT-g APIs 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 -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 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 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-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 @@ -47,7 +47,7 @@ Intel GVT-g Host Support(vGPU device model) :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 @@ -83,14 +83,14 @@ responses to user space modules, notified by vIRQ injections. .. _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. 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: @@ -185,10 +185,10 @@ in the `ACRN kernel GitHub repo`_ .. _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`_ @@ -212,7 +212,7 @@ figure out what kind of error occurs. /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. diff --git a/doc/developer-guides/APL_GVT-g-hld.rst b/doc/developer-guides/APL_GVT-g-hld.rst index 16112ec7b..7b4df68d6 100644 --- a/doc/developer-guides/APL_GVT-g-hld.rst +++ b/doc/developer-guides/APL_GVT-g-hld.rst @@ -1,6 +1,6 @@ -.. _APL_GVT-G-hld: +.. _APL_GVT-g-hld: -GVT-G high-level design +GVT-g high-level design ####################### 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 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 Xen, also known as, "XenGT" @@ -349,7 +349,7 @@ exposed by the GVT device model. :align: center :name: gvt-arch - ACRN-GVT High-level Architecture + AcrnGT High-level Architecture 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 preemption) policy. -ACRN-GT +AcrnGT ******* ACRN is a flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind, optimized to streamline 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 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. .. figure:: images/APL_GVT-g-full-pic.png @@ -911,16 +911,16 @@ OS and an Android Guest OS. :align: center :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 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 write-protection pages, etc. @@ -931,10 +931,10 @@ application: - 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-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: - registering the virtual GPU device to the PCI device tree presented to diff --git a/doc/developer-guides/GVT-G-porting.rst b/doc/developer-guides/GVT-g-porting.rst similarity index 86% rename from doc/developer-guides/GVT-G-porting.rst rename to doc/developer-guides/GVT-g-porting.rst index 397b05208..67cde19dc 100644 --- a/doc/developer-guides/GVT-G-porting.rst +++ b/doc/developer-guides/GVT-g-porting.rst @@ -1,6 +1,6 @@ -.. _GVT-G-porting: +.. _GVT-g-porting: -GVT-G Enabling and Porting Guide +GVT-g Enabling and Porting Guide ################################ Introduction @@ -8,14 +8,14 @@ Introduction 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 -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 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 vGPU instance adopts the full HW GPU's acceleration capability for 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. It is the only layer that needs to be rewritten when porting GVT-g to other specific hypervisors. @@ -45,14 +45,14 @@ Overall Components ****************** 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 - Compiled from ``drivers/gpu/drm/i915/gvt/acrn_gvt.c``, the ACRN-GT +AcrnGT module + Compiled from ``drivers/gpu/drm/i915/gvt/acrn_gvt.c``, the AcrnGT module acts as a glue layer between the ACRN hypervisor and the 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 listens to ACRN hypervisor in ``acrngt_emulation_thread``, and informs GVT module of I/O traps. @@ -61,7 +61,7 @@ ACRN-GT module Device Model's routines, and receives request from GVT module through 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 ``/sys/kernel/gvt/control/create_gvt_instance``. @@ -87,7 +87,7 @@ VHM module 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 :align: center :name: GVT-g_components @@ -101,27 +101,27 @@ Core scenario interaction sequences 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 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 -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. -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. 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 request, and cleans up all vGPU resources. 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 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 diff --git a/doc/developer-guides/images/GVT-G-porting-image1.png b/doc/developer-guides/images/GVT-g-porting-image1.png similarity index 100% rename from doc/developer-guides/images/GVT-G-porting-image1.png rename to doc/developer-guides/images/GVT-g-porting-image1.png diff --git a/doc/developer-guides/index.rst b/doc/developer-guides/index.rst index 6e68919a5..f1d6faf28 100644 --- a/doc/developer-guides/index.rst +++ b/doc/developer-guides/index.rst @@ -26,7 +26,7 @@ specific areas within the ACRN hypervisor system. ACPI-virt-hld.rst interrupt-hld.rst APL_GVT-g-hld.rst - GVT-G-porting.rst + GVT-g-porting.rst Contributing to the project *************************** diff --git a/doc/glossary.rst b/doc/glossary.rst index 6689ff2fb..b8747ae42 100644 --- a/doc/glossary.rst +++ b/doc/glossary.rst @@ -16,6 +16,9 @@ Glossary of Terms real-time and safety-criticality in mind, optimized to streamline embedded development through an open source platform. + AcrnGT + Intel GVT-g technology for ACRN. + ACRN-DM A user mode device model application running in Service OS to provide device emulations in ACRN hypervisor.