mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-09 12:49:24 +00:00
hv/config-tools: add the support for vCAT
Add the VCAT_ENABLED element to RDTType so that user can enable/disable vCAT globally Add the GUEST_FLAG_VCAT_ENABLED guest flag to enable/disable vCAT per-VM. Currently we have the following per-VM clos element in scenario file for RDT use: <clos> <vcpu_clos>0</vcpu_clos> <vcpu_clos>0</vcpu_clos> </clos> When the GUEST_FLAG_VCAT_ENABLED guest flag is not specified, clos is for RDT use, vcpu_clos is per-CPU and it configures each CPU in VMs to a desired CLOS ID. When the GUEST_FLAG_VCAT_ENABLED guest flag is specified, vCAT is enabled for this VM, clos is for vCAT use, vcpu_clos is not per-CPU anymore in this case, just a list of physical CLOSIDs (minimum 2) that are assigned to VMs for vCAT use. Each vcpu_clos will be mapped to a virtual CLOSID, the first vcpu_clos is mapped to virtual CLOSID 0 and the second is mapped to virtual CLOSID 1, etc Add xs:assert to prevent any problems with invalid configuration data for vCAT: If any GUEST_FLAG_VCAT_ENABLED guest flag is specified, both RDT_ENABLED and VCAT_ENABLED must be 'y' If VCAT_ENABLED is 'y', RDT_ENABLED must be 'y' and CDP_ENABLED must be 'n' For a vCAT VM, vcpu_clos cannot be set to CLOSID 0, CLOSID 0 is reserved to be used by hypervisor For a vCAT VM, number of clos/vcpu_clos elements must be greater than 1 For a vCAT VM, each clos/vcpu_clos must be less than L2/L3 COS_MAX For a vCAT VM, its clos/vcpu_clos elements cannot contain duplicate values There should not be any CLOS IDs overlap between a vCAT VM and any other VMs Tracked-On: #5917 Signed-off-by: dongshen <dongsheng.x.zhang@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
@@ -57,6 +57,7 @@
|
||||
#define GUEST_FLAG_RT (1UL << 4U) /* Whether the vm is RT-VM */
|
||||
#define GUEST_FLAG_NVMX_ENABLED (1UL << 5U) /* Whether this VM supports nested virtualization */
|
||||
#define GUEST_FLAG_SECURITY_VM (1UL << 6U) /* Whether this VM needs to do security-vm related fixup (TPM2 and SMBIOS pt) */
|
||||
#define GUEST_FLAG_VCAT_ENABLED (1UL << 7U) /* Whether this VM supports vCAT */
|
||||
|
||||
/* TODO: We may need to get this addr from guest ACPI instead of hardcode here */
|
||||
#define VIRTUAL_SLEEP_CTL_ADDR 0x400U /* Pre-launched VM uses ACPI reduced HW mode and sleep control register */
|
||||
|
Reference in New Issue
Block a user