i386: Enable NPT and NRIPSAVE for AMD CPUs
Modern AMD CPUs support NPT and NRIPSAVE features and KVM exposes these when present. NRIPSAVE apeared somewhere in Opteron_G3 lifetime (e.g. QuadCore AMD Opteron 2378 has is but QuadCore AMD Opteron HE 2344 doesn't), NPT was introduced a bit earlier. Add the FEAT_SVM leaf to Opteron_G4/G5 and EPYC/EPYC-IBPB cpu models. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Message-Id: <20190121155051.5628-1-vkuznets@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
b0a1980384
commit
9fe8b7be17
|
@ -114,7 +114,15 @@ GlobalProperty pc_compat_3_1[] = {
|
||||||
{ "intel-iommu", "dma-drain", "off" },
|
{ "intel-iommu", "dma-drain", "off" },
|
||||||
{ "Opteron_G3" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
{ "Opteron_G3" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
||||||
{ "Opteron_G4" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
{ "Opteron_G4" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
||||||
|
{ "Opteron_G4" "-" TYPE_X86_CPU, "npt", "off" },
|
||||||
|
{ "Opteron_G4" "-" TYPE_X86_CPU, "nrip-save", "off" },
|
||||||
{ "Opteron_G5" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
{ "Opteron_G5" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
||||||
|
{ "Opteron_G5" "-" TYPE_X86_CPU, "npt", "off" },
|
||||||
|
{ "Opteron_G5" "-" TYPE_X86_CPU, "nrip-save", "off" },
|
||||||
|
{ "EPYC" "-" TYPE_X86_CPU, "npt", "off" },
|
||||||
|
{ "EPYC" "-" TYPE_X86_CPU, "nrip-save", "off" },
|
||||||
|
{ "EPYC-IBPB" "-" TYPE_X86_CPU, "npt", "off" },
|
||||||
|
{ "EPYC-IBPB" "-" TYPE_X86_CPU, "nrip-save", "off" },
|
||||||
{ "Skylake-Client" "-" TYPE_X86_CPU, "mpx", "on" },
|
{ "Skylake-Client" "-" TYPE_X86_CPU, "mpx", "on" },
|
||||||
{ "Skylake-Client-IBRS" "-" TYPE_X86_CPU, "mpx", "on" },
|
{ "Skylake-Client-IBRS" "-" TYPE_X86_CPU, "mpx", "on" },
|
||||||
{ "Skylake-Server" "-" TYPE_X86_CPU, "mpx", "on" },
|
{ "Skylake-Server" "-" TYPE_X86_CPU, "mpx", "on" },
|
||||||
|
|
|
@ -2801,6 +2801,8 @@ static X86CPUDefinition builtin_x86_defs[] = {
|
||||||
CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE |
|
CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE |
|
||||||
CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | CPUID_EXT3_SVM |
|
CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | CPUID_EXT3_SVM |
|
||||||
CPUID_EXT3_LAHF_LM,
|
CPUID_EXT3_LAHF_LM,
|
||||||
|
.features[FEAT_SVM] =
|
||||||
|
CPUID_SVM_NPT | CPUID_SVM_NRIPSAVE,
|
||||||
/* no xsaveopt! */
|
/* no xsaveopt! */
|
||||||
.xlevel = 0x8000001A,
|
.xlevel = 0x8000001A,
|
||||||
.model_id = "AMD Opteron 62xx class CPU",
|
.model_id = "AMD Opteron 62xx class CPU",
|
||||||
|
@ -2831,6 +2833,8 @@ static X86CPUDefinition builtin_x86_defs[] = {
|
||||||
CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE |
|
CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE |
|
||||||
CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | CPUID_EXT3_SVM |
|
CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | CPUID_EXT3_SVM |
|
||||||
CPUID_EXT3_LAHF_LM,
|
CPUID_EXT3_LAHF_LM,
|
||||||
|
.features[FEAT_SVM] =
|
||||||
|
CPUID_SVM_NPT | CPUID_SVM_NRIPSAVE,
|
||||||
/* no xsaveopt! */
|
/* no xsaveopt! */
|
||||||
.xlevel = 0x8000001A,
|
.xlevel = 0x8000001A,
|
||||||
.model_id = "AMD Opteron 63xx class CPU",
|
.model_id = "AMD Opteron 63xx class CPU",
|
||||||
|
@ -2877,6 +2881,8 @@ static X86CPUDefinition builtin_x86_defs[] = {
|
||||||
CPUID_XSAVE_XGETBV1,
|
CPUID_XSAVE_XGETBV1,
|
||||||
.features[FEAT_6_EAX] =
|
.features[FEAT_6_EAX] =
|
||||||
CPUID_6_EAX_ARAT,
|
CPUID_6_EAX_ARAT,
|
||||||
|
.features[FEAT_SVM] =
|
||||||
|
CPUID_SVM_NPT | CPUID_SVM_NRIPSAVE,
|
||||||
.xlevel = 0x8000001E,
|
.xlevel = 0x8000001E,
|
||||||
.model_id = "AMD EPYC Processor",
|
.model_id = "AMD EPYC Processor",
|
||||||
.cache_info = &epyc_cache_info,
|
.cache_info = &epyc_cache_info,
|
||||||
|
@ -2925,6 +2931,8 @@ static X86CPUDefinition builtin_x86_defs[] = {
|
||||||
CPUID_XSAVE_XGETBV1,
|
CPUID_XSAVE_XGETBV1,
|
||||||
.features[FEAT_6_EAX] =
|
.features[FEAT_6_EAX] =
|
||||||
CPUID_6_EAX_ARAT,
|
CPUID_6_EAX_ARAT,
|
||||||
|
.features[FEAT_SVM] =
|
||||||
|
CPUID_SVM_NPT | CPUID_SVM_NRIPSAVE,
|
||||||
.xlevel = 0x8000001E,
|
.xlevel = 0x8000001E,
|
||||||
.model_id = "AMD EPYC Processor (with IBPB)",
|
.model_id = "AMD EPYC Processor (with IBPB)",
|
||||||
.cache_info = &epyc_cache_info,
|
.cache_info = &epyc_cache_info,
|
||||||
|
|
Loading…
Reference in a new issue