misc: refine clos and vCAT element

The current UI "Maximum virtual CLOS" above the "VM Virtual Cache
Allocation Tech", it's not user-friendly, and the clos element was not
used by vCAT feature.

This patch move the "virtual_cat_number" element and remove the unused
node from schema.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
This commit is contained in:
Chenli Wei 2022-05-26 17:39:06 +08:00 committed by acrnsi-robot
parent 5d2ceb3860
commit 5bc55d352f
3 changed files with 11 additions and 34 deletions

View File

@ -68,23 +68,6 @@
</xs:sequence>
</xs:complexType>
<xs:complexType name="CLOSConfiguration">
<xs:sequence>
<xs:element name="vcpu_clos" type="xs:integer" default="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>By default (``virtual_cat_support`` is not specified):
vcpu_clos is per-CPU and it configures each CPU in VMs to a desired CLOS ID in the ``VM`` section of the
scenario file. Follow :ref:`rdt_detection_capabilities` to identify the maximum supported CLOS ID that can be used.
If ``virtual_cat_support`` is specified:
vcpu_clos is not per-CPU anymore, 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.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EPCSection">
<xs:sequence>
<xs:element name="base" type="HexFormat" default="0">

View File

@ -357,6 +357,11 @@ Refer to :ref:`vuart_config` for detailed vUART settings.</xs:documentation>
<xs:documentation>Enable nested virtualization for KVM.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="virtual_cat_support" type="Boolean" default="n" minOccurs="0">
<xs:annotation acrn:title="VM Virtual Cache Allocation Tech" acrn:applicable-vms="pre-launched, post-launched" acrn:views="advanced">
<xs:documentation>Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="virtual_cat_number" default="0" minOccurs="0">
<xs:annotation acrn:title="Maximum virtual CLOS" acrn:applicable-vms="pre-launched, post-launched" acrn:views="advanced">
<xs:documentation>Max number of virtual CLOS MASK</xs:documentation>
@ -370,11 +375,6 @@ Refer to :ref:`vuart_config` for detailed vUART settings.</xs:documentation>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="virtual_cat_support" type="Boolean" default="n" minOccurs="0">
<xs:annotation acrn:title="VM Virtual Cache Allocation Tech" acrn:applicable-vms="pre-launched, post-launched" acrn:views="advanced">
<xs:documentation>Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="secure_world_support" type="Boolean" default="n" minOccurs="0">
<xs:annotation acrn:views="">
<xs:documentation>Specify secure world support for trusty OS.</xs:documentation>
@ -390,12 +390,6 @@ Refer to :ref:`vuart_config` for detailed vUART settings.</xs:documentation>
<xs:documentation>Specify TPM2 FIXUP for VM.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="clos" type="CLOSConfiguration">
<xs:annotation acrn:views="advanced">
<xs:documentation>Class of Service for Cache Allocation Technology.
Refer SDM 17.19.2 for details, and use with caution.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="epc_section" type="EPCSection" minOccurs="0">
<xs:annotation acrn:title="SGX Enclave Page Cache" acrn:views="advanced" acrn:applicable-vms="pre-launched">
<xs:documentation>Specify the Intel Software Guard Extensions (SGX) enclave page cache (EPC) section settings.</xs:documentation>

View File

@ -106,7 +106,7 @@
<xsl:call-template name="guest_flags" />
<xsl:if test="acrn:is-rdt-enabled()">
<xsl:apply-templates select="clos" />
<xsl:call-template name="clos" />
</xsl:if>
<xsl:call-template name="cpu_affinity" />
@ -176,14 +176,14 @@
<xsl:value-of select="acrn:initializer('guest_flags', concat('(', acrn:string-join(//allocation-data/acrn-config/vm[@id=$vm_id]/guest_flags/guest_flag, '|', '', ''),')'))" />
</xsl:template>
<xsl:template match="clos">
<xsl:template name="clos">
<xsl:value-of select="acrn:ifdef('CONFIG_RDT_ENABLED')" />
<xsl:value-of select="acrn:initializer('pclosids', concat('vm', ../@id, '_vcpu_clos'))" />
<xsl:value-of select="acrn:initializer('pclosids', concat('vm', @id, '_vcpu_clos'))" />
<xsl:variable name="vm_id" select="../@id" />
<xsl:variable name="vm_name" select="../name/text()" />
<xsl:variable name="vm_id" select="@id" />
<xsl:variable name="vm_name" select="name/text()" />
<xsl:choose>
<xsl:when test="acrn:is-vcat-enabled() and ../virtual_cat_support[text() = 'y']">
<xsl:when test="acrn:is-vcat-enabled() and virtual_cat_support[text() = 'y']">
<xsl:value-of select="acrn:initializer('num_pclosids', concat(count(//vm[@id=$vm_id]/virtual_cat_number), 'U'))" />
<xsl:variable name="rdt_res_str" select="acrn:get-normalized-closinfo-rdt-res-str()" />