From 54e275c8bb4bea9a146f80332f4cf3eb79c47c0a Mon Sep 17 00:00:00 2001 From: "David B. Kinder" Date: Fri, 3 Jun 2022 13:02:14 -0700 Subject: [PATCH] doc: edit schema assert messages for clarity and grammar Use DX names (acrn:title) instead of element names in messages. Add missing message in rdt_support.xsd (all asserts need an annotation with documentation for the error message that will be reported). Tracked-On: #7685 Signed-off-by: David B. Kinder --- .../schema/checks/cpu_assignment.xsd | 8 ++-- .../schema/checks/ivsh_memory.xsd | 2 +- .../schema/checks/passthrough_devices.xsd | 2 +- .../schema/checks/rdt_support.xsd | 42 +++++++------------ .../schema/checks/vbdf_assignment.xsd | 2 +- .../schema/checks/virtio_devices.xsd | 2 +- misc/config_tools/schema/checks/vm_types.xsd | 6 +-- .../schema/checks/vuart_config.xsd | 6 +-- 8 files changed, 30 insertions(+), 40 deletions(-) diff --git a/misc/config_tools/schema/checks/cpu_assignment.xsd b/misc/config_tools/schema/checks/cpu_assignment.xsd index ff88b4092..0af953674 100644 --- a/misc/config_tools/schema/checks/cpu_assignment.xsd +++ b/misc/config_tools/schema/checks/cpu_assignment.xsd @@ -7,7 +7,7 @@ - VM "{$vm/name}" needs at least one vCPU. + VM "{$vm/name}" needs at least one vCPU assigned. @@ -27,21 +27,21 @@ - Physical CPU {$pcpu} is assigned to real-time VM (RTVM) [{$pcpu/ancestor::vm/name}] and thus cannot be shared among multiple VMs. Look for, and probably remove, any affinity assignments to {$pcpu} in this VM's settings: {//vm[cpu_affinity//pcpu_id = $pcpu]/name}. + Physical CPU {$pcpu} is assigned to RTVM "[{$pcpu/ancestor::vm/name}]" and thus may not be shared among multiple VMs. Look for, and probably remove, any affinity assignments to CPU {$pcpu} in this VM {//vm[cpu_affinity//pcpu_id = $pcpu]/name} settings. - The physical CPUs must be allocated to the VM "{$vm/name}". + At least one physical CPU must be allocated to VM "{$vm/name}". - The physical CPUs allocated to the VM "{$vm/name}" have both performance cores {processors//thread[cpu_id = $vm//cpu_affinity//pcpu_id and core_type = 'Core']/cpu_id} and efficient cores {processors//thread[cpu_id = $vm//cpu_affinity//pcpu_id and core_type = 'Atom']/cpu_id}, which is unsupported. Remove either all performance or all efficient cores from the CPU affinity. + The physical CPUs allocated to the VM "{$vm/name}" have both performance cores {processors//thread[cpu_id = $vm//cpu_affinity//pcpu_id and core_type = 'Core']/cpu_id} and efficiency cores {processors//thread[cpu_id = $vm//cpu_affinity//pcpu_id and core_type = 'Atom']/cpu_id}, which is unsupported. Remove either all performance or all efficiency cores from the CPU affinity. diff --git a/misc/config_tools/schema/checks/ivsh_memory.xsd b/misc/config_tools/schema/checks/ivsh_memory.xsd index 33e2bbd6a..ce966665b 100644 --- a/misc/config_tools/schema/checks/ivsh_memory.xsd +++ b/misc/config_tools/schema/checks/ivsh_memory.xsd @@ -10,7 +10,7 @@ every $REGION_NAME in /acrn-config//IVSHMEM_REGION[IVSHMEM_VMS/IVSHMEM_VM/VM_NAME=$VM_NAME]/NAME satisfies count(/acrn-config//IVSHMEM_REGION[NAME=$REGION_NAME]/IVSHMEM_VMS/IVSHMEM_VM[VM_NAME=$VM_NAME]) = 1"> - InterVM shared memory region name "{$REGION_NAME}" should be different for the same VM "{$VM_NAME}" + VM "{$VM_NAME}" may not be duplicated in the list of VMs that have access to the Inter-VM shared memory region "{$REGION_NAME}". diff --git a/misc/config_tools/schema/checks/passthrough_devices.xsd b/misc/config_tools/schema/checks/passthrough_devices.xsd index 3d9e21039..c495ebbe4 100644 --- a/misc/config_tools/schema/checks/passthrough_devices.xsd +++ b/misc/config_tools/schema/checks/passthrough_devices.xsd @@ -8,7 +8,7 @@ - VM "{$vm/name}" is assigned both a TPM2 and P2SB (Primary-to-Sideband bridge), which is not a supported configuration. Remove one of these choices. + VM "{$vm/name}" is assigned both a TPM2 (Trusted Platform Module) and P2SB (Primary-to-Sideband Bridge), which is not a supported configuration. Remove one of these choices. diff --git a/misc/config_tools/schema/checks/rdt_support.xsd b/misc/config_tools/schema/checks/rdt_support.xsd index 9288d1bef..38c045471 100644 --- a/misc/config_tools/schema/checks/rdt_support.xsd +++ b/misc/config_tools/schema/checks/rdt_support.xsd @@ -7,7 +7,7 @@ then (//CDP_ENABLED = 'n' and //RDT_ENABLED = 'y') else true()"> - vCAT can be enabled only when RDT_ENABLED is 'y' and CDP_ENABLED is 'n' + Hypervisor Virtual Cache Allocation Technology may be enabled only when hypervisor Code and Data Prioritization is disabled. @@ -15,19 +15,7 @@ then //RDT_ENABLED = 'y' and //VCAT_ENABLED = 'y' else true()"> - Per VM virtual_cat_support can be set only when RDT_ENABLED is 'y' and VCAT_ENABLED is 'y'. - - - - - - For a vCAT VM, number of clos/vcpu_clos elements must be greater than 1! + VM Virtual Cache Allocation Technology may be enabled only when hypervisor Virtual Cache Allocation Technology is enabled. @@ -35,7 +23,7 @@ then count(vm[virtual_cat_support[text() = 'y'] and count(clos/vcpu_clos[. = 0])]) = 0 else true()"> - For a vCAT VM, vcpu_clos cannot be set to CLOSID 0, CLOSID 0 is reserved to be used by hypervisor + CLOSID 0 is reserved for the hypervisor and may not be used as a vcpu_clos by a VM. @@ -47,7 +35,7 @@ ) "> - For a vCAT VM, each clos/vcpu_clos must be less than L2/L3 COS_MAX! + Each clos/vcpu_clos must be less than L2/L3 CLOS_MAX. @@ -59,7 +47,7 @@ ) "> - For a vCAT VM, its clos/vcpu_clos elements cannot contain duplicate values + A VM's clos/vcpu_clos settings may not contain duplicate values. @@ -71,31 +59,33 @@ ) "> - if RDT_ENABLED is 'y', there should not be any CLOS IDs overlap between a vCAT VM and any other VMs + When Virtual Cache Allocation Technology is enabled, CLOS IDs may not overlap between any VMs. - Service VM cannot use LAPIC passthrough unless GUEST_FLAG_NVMX_ENABLED is set. + The Service VM may not use LAPIC passthrough unless hypervisor Nested Virtualization is enabled. - + + + The hypervisor Intel Resource Director Technology and Software SRAM settings may not be enabled at the same time. + + - The physical software SRAM region shall not overlap with pre-defined regions in guest. + The physical software SRAM region may not overlap with pre-defined regions in any VM. -When a pre-launched RT VM is enabled, the physical software SRAM is allocated to it at the same guest physical +When a pre-launched RTVM is enabled, the physical software SRAM is allocated to it at the same guest physical address. Thus it is assumed that the software SRAM region does not overlap with any pre-defined region in the -pre-launched VM, such as the guest PCI hole which resides at 2G - 3.5G. - -This error cannot be fixed by tweaking the configurations. Report to _GitHub: -https://github.com/projectacrn/acrn-hypervisor/issues if you meet this. +pre-launched VM, such as the guest PCI hole which resides at 2GB - 3.5GB. +This error cannot be fixed by adjusting the configuration. Report a `GitHub issue <https://github.com/projectacrn/acrn-hypervisor/issues>`_ if you receive this error. diff --git a/misc/config_tools/schema/checks/vbdf_assignment.xsd b/misc/config_tools/schema/checks/vbdf_assignment.xsd index 45a65945b..fde14c2b7 100644 --- a/misc/config_tools/schema/checks/vbdf_assignment.xsd +++ b/misc/config_tools/schema/checks/vbdf_assignment.xsd @@ -10,7 +10,7 @@ every $vbdf in $root/hv//vuart_connection[type='pci']/endpoint[vm_name=$vm/name]/vbdf/text() | $root/hv//IVSHMEM_VM[VM_NAME=$vm/name]/VBDF/text() satisfies count($root/hv//vuart_connection[type='pci']/endpoint[vm_name=$vm/name and vbdf=$vbdf] | $root/hv//IVSHMEM_VM[VM_NAME=$vm/name and VBDF=$vbdf]) = 1"> - VM "{$vm/name}" contains multiple virtual UART controllers and/or IVSHMEM interfaces using BDF {$vbdf}. Adjust the BDF of those devices. + VM "{$vm/name}" contains multiple virtual UART controllers or IVSHMEM interfaces using BDF {$vbdf}. Adjust the BDF of those devices to be unique. diff --git a/misc/config_tools/schema/checks/virtio_devices.xsd b/misc/config_tools/schema/checks/virtio_devices.xsd index 87556cc24..b7eac7d45 100644 --- a/misc/config_tools/schema/checks/virtio_devices.xsd +++ b/misc/config_tools/schema/checks/virtio_devices.xsd @@ -10,7 +10,7 @@ count(//virtio_devices/vsock[text()=$vsock]) = 1 "> - "{$vm/name}" repeats a vsock CID assignment: {$vsock}, either with this VM or with other VMs. Remove the duplicates. + VM "{$vm/name}" repeats a vsock CID assignment: {$vsock}, used in this VM or another VM. Make all vsock CID values unique. diff --git a/misc/config_tools/schema/checks/vm_types.xsd b/misc/config_tools/schema/checks/vm_types.xsd index 9815522d6..fb54fb2fa 100644 --- a/misc/config_tools/schema/checks/vm_types.xsd +++ b/misc/config_tools/schema/checks/vm_types.xsd @@ -7,7 +7,7 @@ - There can be at most one service VM, but more than one was configured. Verify there is only one VM with vm_type set to SERVICE_VM. + There may be at most one Service VM, but more than one was configured. Verify only one VM's VM type is set to SERVICE_VM. @@ -29,13 +29,13 @@ - Multiple pre-launched VMs {//vm[load_order = 'PRE_LAUNCHED_VM' and vm_type = 'RTVM']/name} are defined as RT VMs, but ACRN supports at most one pre-launched RT VM in one scenario. Adjust the VM types of those VMs to STANDARD_VM to fix this. + ACRN supports at most one pre-launched RTVM. Multiple pre-launched VMs {//vm[load_order = 'PRE_LAUNCHED_VM' and vm_type = 'RTVM']/name} are defined as RTVMs. Adjust the VM type of these VMs to Standard to fix this. - Pre-launched RT VM(s) {//vm[load_order = 'PRE_LAUNCHED_VM' and vm_type = 'RTVM']/name} and post-launched RT VMs {//vm[load_order = 'POST_LAUNCHED_VM' and vm_type = 'RTVM']/name} cannot coexist. Adjust the VM types of those VMs to STANDARD_VM to fix this. + Pre-launched RTVM(s) {//vm[load_order = 'PRE_LAUNCHED_VM' and vm_type = 'RTVM']/name} and post-launched RTVMs {//vm[load_order = 'POST_LAUNCHED_VM' and vm_type = 'RTVM']/name} may not coexist. Adjust the VM type of these VMs to Standard to fix this. diff --git a/misc/config_tools/schema/checks/vuart_config.xsd b/misc/config_tools/schema/checks/vuart_config.xsd index c208176b2..2ecbb5a4b 100644 --- a/misc/config_tools/schema/checks/vuart_config.xsd +++ b/misc/config_tools/schema/checks/vuart_config.xsd @@ -10,14 +10,14 @@ every $vm_name in $vuart_connection/endpoint/vm_name/text() satisfies count($vuart_connection/endpoint[./vm_name/text()=$vm_name]) = 1"> - VM "{$vm_name}" can't connected to itself + The vUART configuration of VM "{$vm_name}" may not connect to itself. - VM "{$io_port/ancestor::endpoint/vm_name}" use duplicate "{$io_port}" + VM "{$io_port/ancestor::endpoint/vm_name}" may not duplicate use of port "{$io_port}." @@ -32,7 +32,7 @@ then count(//endpoint[./vm_name=$console_port/ancestor::vm/name and io_port='0x2E8']) < 1 else true()"> - VM "{$console_port/ancestor::vm/name}" use duplicate "{$console_port}" + VM "{$console_port/ancestor::vm/name}" may not duplicate use of console "{$console_port}."