mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-04-29 04:04:05 +00:00
This patch is about the bug that VMs can't idle. ACRN enables VM's C-state by extracting host's C-state table. The C-state table has two types of interfaces: system-IO and mwait. VMs just need one of them. ACRN can support both. Currently we are telling users to use the system-IO type. That is, by adding 'nomwait intel_idle.max_cstate=0' to host Linux's CMD line when using board_inspector. (The reaseon we were using system-IO is that mwait was buggy on Apollo Lake.) But recent tests show that system-IO is somehow buggy. Linux c-state driver(no matter intel_cstate or acpi_cstate) fails to enter idle state with system-IO. This can always be reproduced on native environments. MPERF counters show CPU cores are not in real idle state as expected. To enable C-state in VMs, we have to switch to mwait. As ACRN has already supported both system-IO and mwait, we don't have to modify any code. We just need to tell user to use mwait instead of system-IO. That is, don't add 'nomwait intel_idle.max_cstate=0' to host Linux's CMD line when using board_inspector. Just add 'intel_idle.max_cstate=0' Due to the Apollo Lake's mwait bug, 'nomwait' is still needed for Apollo Lake as an exception. Tracked-On: #7371 Reviewed-by: Junjie Mao <junjie.mao@intel.com> Signed-off-by: Zhou, Wu <wu.zhou@intel.com> |
||
---|---|---|
.. | ||
acpi_gen | ||
acpi_template/template | ||
board_config | ||
board_inspector | ||
config_app | ||
configurator | ||
data | ||
hv_config | ||
launch_config | ||
library | ||
scenario_config | ||
schema | ||
service_vm_config | ||
static_allocators | ||
xforms | ||
build.cmd | ||
LICENSE | ||
MANIFEST.in | ||
pyproject.toml | ||
README.md | ||
requirements.txt | ||
setup.cfg |
Supporting libraries of ACRN configuration toolset
This package contains the libraries supporting ACRN configuration toolset, including:
- The manipulators and validators of scenario schemas or XMLs
- The generator of guest ACPI tables
The main objective of this package is to ease the import of the supporting libraries in the ACRN configurator which uses a Python interpreter built in WebAssembly (WASM). This package is thus NOT intended to be used by users; invoke the Python scripts directly if needed.