mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-22 21:03:55 +00:00
Currently CPU frequency control is hidden to guests, and controlled by hypervisor. While it is sufficient in most cases, some guest OS may still need CPU performance info to make multi-core scheduling decisions. This is seen on Linux kernel, which uses HWP highest performance level as CPU core's priority in multi-core scheduling (CONFIG_SCHED_MC_PRIO). Enabling this kernel feature could improve performance as single thread workloads are scheduled on the highest performance cores. This is significantly useful for guests with hybrid cores. The concept is to expose performance interface to guest who exclusively owns pCPU assigned to it. So that Linux guest can load intel_pstate driver which will then provide the kernel with each core's schedule priority. Intel_pstate driver also relies on CONFIG_ACPI_CPPC_LIB to implement this mechanic, this means we also need to provide ACPI _CPC in DM. This patch sets up a guest flag GUEST_FLAG_VHWP to indicate whether the guest can have VHWP feature. Tracked-On: #8414 Signed-off-by: Wu Zhou <wu.zhou@intel.com> Reviewed-by: Junjie Mao <junjie.mao@intel.com>
ACRN Hypervisor ############### The open source `Project ACRN`_ defines a device hypervisor reference stack and an architecture for running multiple software subsystems, managed securely, on a consolidated system by means of a virtual machine manager. It also defines a reference framework implementation for virtual device emulation, called the "ACRN Device Model". The ACRN Hypervisor is a Type 1 reference hypervisor stack, running directly on the bare-metal hardware, and is suitable for a variety of IoT and embedded device solutions. The ACRN hypervisor addresses the gap that currently exists between datacenter hypervisors, and hard partitioning hypervisors. The ACRN hypervisor architecture partitions the system into different functional domains, with carefully selected guest OS sharing optimizations for IoT and embedded devices. You can find out more about Project ACRN on the `Project ACRN documentation`_ website. .. _`Project ACRN`: https://projectacrn.org .. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor .. _`Project ACRN documentation`: https://projectacrn.github.io/