acrn-hypervisor/devicemodel
Wu Zhou 8c38cd5734 dm: add _CPC to guest ACPI pm tables
The optional object _CPC declares an interface that allows OSPM to
transition the processor into a performance state based on a continuous
range of allowable values.

It is associated with HWP on intel CPUs. Although Linux intel_pstate driver
can have its performance managing abilities without _CPC, it may still
need this _CPC table to implement some features such as providing the kernel
multi-core scheduler with core priority info.

As currently we are giving guests a vHWP interface for the multi-core
scheduler, this patch adds _CPC to the guest ACPI. _CPC is written only
when the hypervisor decides the guest should have vHWP, using the
existing pm hypercall ACRN_PMCMD_GET_PX_CNT. The idea is:
- If the VM supports vHWP, then the guest is having continuous p-state.
  Thus it doesn't have a specific px_cnt. The hypercall returns success
  and px_cnt = 0.
- If the VM's p-state is hidden or hv doesn't have its p-state info,
  the hypercall returns fail.

Tracked-On: #8414
Signed-off-by: Wu Zhou <wu.zhou@intel.com>
Reviewed-by: Jian Jun Chen <jian.jun.chen@intel.com>
2023-06-09 10:06:42 +08:00
..
arch/x86 Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
bios OVMF release v3.0 2022-03-31 09:06:34 +08:00
core asyncio: refine the setup ioctl 2022-11-25 10:43:34 +08:00
hw dm: add _CPC to guest ACPI pm tables 2023-06-09 10:06:42 +08:00
include asyncio: refine the setup ioctl 2022-11-25 10:43:34 +08:00
lib Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
log Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
Makefile dm: change the version format 2022-11-21 13:23:28 +08:00
README.rst doc: terminology cleanup in DM readme 2021-11-24 06:29:25 -08:00
samples acrn-config: Reorg config tool folder 2021-01-27 11:08:28 +08:00

README.rst

ACRN Device Model
#################

Introduction
============

The ACRN Device Model provides **device sharing** capabilities between the
Service VM and post-launched User VMs. It is a component that is used in
conjunction with the `ACRN Hypervisor`_ and is installed within the Service
VM.

.. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor