@samitouri / QOSamiQemu / commits / 4b78610e64

target/i386: add new Intel models for MBEC enablement

Add models to expose Mode Based Execute Control (MBEC) support, which is a Skylake++ feature. Note: Future models can use VMX_SECONDARY_EXEC_MODE_BASED_EPT_EXEC to easily add default support. New models are: - Skylake-Server-v6 - Cascadelake-Server-v7 - Icelake-Server-v9 - SapphireRapids-v8 - GraniteRapids-v7 - DiamondRapids-v2 - SierraForest-v6 - ClearwaterForest-v4 Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Zhao Liu <zhao1.liu@intel.com> Signed-off-by: Jon Kohler <jon@nutanix.com> Link: https://lore.kernel.org/r/20260330193428.1663253-4-jon@nutanix.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Jon Kohler committed Mar 30, 2026 at 12:34 UTC 4b78610e64634882dea1dd55987fef8bc4870252
1 file changed +67
target/i386/cpu.c
+67
@@ -4767,6 +4767,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
4767 { /* end of list */ }
4768 }
4769 },
4770 + {
4771 + .version = 6,
4772 + .note = "with MBEC enabled",
4773 + .props = (PropValue[]) {
4774 + { "vmx-mbec", "on" },
4775 + { /* end of list */ }
4776 + }
4777 + },
4778 { /* end of list */ }
4779 }
4780 },
@@ -4912,6 +4920,13 @@ static const X86CPUDefinition builtin_x86_defs[] = {
4920 { /* end of list */ }
4921 },
4922 },
4923 + { .version = 7,
4924 + .note = "with MBEC enabled",
4925 + .props = (PropValue[]) {
4926 + { "vmx-mbec", "on" },
4927 + { /* end of list */ }
4928 + },
4929 + },
4930 { /* end of list */ }
4931 }
4932 },
@@ -5206,6 +5221,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5221 { /* end of list */ }
5222 },
5223 },
5224 + {
5225 + .version = 9,
5226 + .note = "with MBEC enabled",
5227 + .props = (PropValue[]) {
5228 + { "vmx-mbec", "on" },
5229 + { /* end of list */ }
5230 + }
5231 + },
5232 { /* end of list */ }
5233 }
5234 },
@@ -5392,6 +5415,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5415 { /* end of list */ },
5416 }
5417 },
5418 + {
5419 + .version = 8,
5420 + .note = "with MBEC enabled",
5421 + .props = (PropValue[]) {
5422 + { "vmx-mbec", "on" },
5423 + { /* end of list */ },
5424 + }
5425 + },
5426 { /* end of list */ }
5427 }
5428 },
@@ -5582,6 +5613,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5613 { /* end of list */ },
5614 }
5615 },
5616 + {
5617 + .version = 7,
5618 + .note = "with MBEC enabled",
5619 + .props = (PropValue[]) {
5620 + { "vmx-mbec", "on" },
5621 + { /* end of list */ },
5622 + }
5623 + },
5624 { /* end of list */ },
5625 },
5626 },
@@ -5776,6 +5815,18 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5815 .features[FEAT_VMX_VMFUNC] = MSR_VMX_VMFUNC_EPT_SWITCHING,
5816 .xlevel = 0x80000008,
5817 .model_id = "Intel Xeon Processor (DiamondRapids)",
5818 + .versions = (X86CPUVersionDefinition[]) {
5819 + { .version = 1 },
5820 + {
5821 + .version = 2,
5822 + .note = "with MBEC enabled",
5823 + .props = (PropValue[]) {
5824 + { "vmx-mbec", "on" },
5825 + { /* end of list */ },
5826 + }
5827 + },
5828 + { /* end of list */ },
5829 + },
5830 },
5831 {
5832 .name = "SierraForest",
@@ -5947,6 +5998,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5998 { /* end of list */ },
5999 }
6000 },
6001 + {
6002 + .version = 6,
6003 + .note = "with MBEC enabled",
6004 + .props = (PropValue[]) {
6005 + { "vmx-mbec", "on" },
6006 + { /* end of list */ },
6007 + }
6008 + },
6009 { /* end of list */ },
6010 },
6011 },
@@ -6103,6 +6162,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
6162 { /* end of list */ },
6163 }
6164 },
6165 + {
6166 + .version = 4,
6167 + .note = "with MBEC enabled",
6168 + .props = (PropValue[]) {
6169 + { "vmx-mbec", "on" },
6170 + { /* end of list */ },
6171 + }
6172 + },
6173 { /* end of list */ },
6174 },
6175 },