+
+
+ own_pcpu
+
+
+
+
+
+
+
+
@@ -119,9 +139,15 @@ export default {
isRTVM() {
return vueUtils.getPathVal(this.rootFormData, 'vm_type') === 'RTVM'
},
+ is_std_vm() {
+ return vueUtils.getPathVal(this.rootFormData, 'vm_type') === 'STANDARD_VM'
+ },
pcpuid_enum() {
return window.getCurrentFormSchemaData().BasicConfigType.definitions.CPUAffinityConfiguration.properties.pcpu_id
},
+ pcpu_owned() {
+ return vueUtils.getPathVal(this.rootFormData, 'own_pcpu')
+ },
uiOptions() {
return formUtils.getUiOptions({
schema: this.schema,
@@ -151,6 +177,10 @@ export default {
addPCPU(index) {
this.defaultVal.pcpu.splice(index + 1, 0, {pcpu_id: null, real_time_vcpu: "n"})
},
+ click_own_pcpu() {
+ let newValue = this.pcpu_owned === 'y' ? 'n' : 'y';
+ vueUtils.setPathVal(this.rootFormData, 'own_pcpu', newValue)
+ },
removePCPU(index) {
if (this.defaultVal.pcpu.length === 1) {
// prevent delete for the last one
diff --git a/misc/config_tools/schema/checks/cpu_assignment.xsd b/misc/config_tools/schema/checks/cpu_assignment.xsd
index b08901100..0629a9cd2 100644
--- a/misc/config_tools/schema/checks/cpu_assignment.xsd
+++ b/misc/config_tools/schema/checks/cpu_assignment.xsd
@@ -25,6 +25,13 @@
+
+
+ Physical CPU {$pcpu} is assigned to a VM "[{$pcpu/ancestor::vm/name}]" exclusively owns the physical CPUs assigned to it. Look for, and probably remove, any affinity assignments to CPU {$pcpu} in these VMs {//vm[cpu_affinity//pcpu_id = $pcpu and name != $pcpu/ancestor::vm/name]/name} settings.
+
+
+
diff --git a/misc/config_tools/schema/config.xsd b/misc/config_tools/schema/config.xsd
index 974af8bd9..19c7dfd51 100644
--- a/misc/config_tools/schema/config.xsd
+++ b/misc/config_tools/schema/config.xsd
@@ -370,6 +370,11 @@ These settings can only be changed at build time.
+
+
+ Enable a VM exclusively owns the physical CPUs assigned to it.
+
+ Select a subset of physical CPUs that this VM can use. More than one can be selected.