[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86/cpuid: More AMD features
commit ee973396f008ff0de2836b7ca100ce822740fa41 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Mon Mar 18 18:07:05 2024 +0000 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Thu Mar 21 11:38:03 2024 +0000 x86/cpuid: More AMD features All of these are informational and require no further logic changes in Xen to support. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- tools/misc/xen-cpuid.c | 5 +++++ xen/include/public/arch-x86/cpufeatureset.h | 8 ++++++++ xen/tools/gen-cpuid.py | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/tools/misc/xen-cpuid.c b/tools/misc/xen-cpuid.c index 51efbff579..8893547beb 100644 --- a/tools/misc/xen-cpuid.c +++ b/tools/misc/xen-cpuid.c @@ -91,6 +91,7 @@ static const char *const str_e1c[32] = [24] = "perfctr-nb", /* [25] */ [26] = "dbx", [27] = "perftsc", [28] = "pcx-l2i", [29] = "monitorx", + [30] = "addr-msk-ext", }; static const char *const str_7b0[32] = @@ -199,11 +200,15 @@ static const char *const str_7a1[32] = static const char *const str_e21a[32] = { + [ 0] = "no-nest-bp", [ 1] = "fs-gs-ns", [ 2] = "lfence+", [ 6] = "nscb", [ 8] = "auto-ibrs", + [10] = "amd-fsrs", [11] = "amd-fsrc", /* 16 */ [17] = "cpuid-user-dis", + [18] = "epsf", [19] = "fsrsc", + [20] = "amd-prefetchi", /* 26 */ [27] = "sbpb", [28] = "ibpb-brtype", [29] = "srso-no", diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h index eb9f552948..3de7c0383f 100644 --- a/xen/include/public/arch-x86/cpufeatureset.h +++ b/xen/include/public/arch-x86/cpufeatureset.h @@ -168,6 +168,7 @@ XEN_CPUFEATURE(TBM, 3*32+21) /*A trailing bit manipulations */ XEN_CPUFEATURE(TOPOEXT, 3*32+22) /* topology extensions CPUID leafs */ XEN_CPUFEATURE(DBEXT, 3*32+26) /*A data breakpoint extension */ XEN_CPUFEATURE(MONITORX, 3*32+29) /* MONITOR extension (MONITORX/MWAITX) */ +XEN_CPUFEATURE(ADDR_MSK_EXT, 3*32+30) /*A Address Mask Extentions */ /* Intel-defined CPU features, CPUID level 0x0000000D:1.eax, word 4 */ XEN_CPUFEATURE(XSAVEOPT, 4*32+ 0) /*A XSAVEOPT instruction */ @@ -290,10 +291,17 @@ XEN_CPUFEATURE(WRMSRNS, 10*32+19) /*S WRMSR Non-Serialising */ XEN_CPUFEATURE(AVX_IFMA, 10*32+23) /*A AVX-IFMA Instructions */ /* AMD-defined CPU features, CPUID level 0x80000021.eax, word 11 */ +XEN_CPUFEATURE(NO_NEST_BP, 11*32+ 0) /*A No Nested Data Breakpoints */ +XEN_CPUFEATURE(FS_GS_NS, 11*32+ 1) /*S FS/GS base MSRs non-serialising */ XEN_CPUFEATURE(LFENCE_DISPATCH, 11*32+ 2) /*A LFENCE always serializing */ XEN_CPUFEATURE(NSCB, 11*32+ 6) /*A Null Selector Clears Base (and limit too) */ XEN_CPUFEATURE(AUTO_IBRS, 11*32+ 8) /*S Automatic IBRS */ +XEN_CPUFEATURE(AMD_FSRS, 11*32+10) /*A Fast Short REP STOSB */ +XEN_CPUFEATURE(AMD_FSRC, 11*32+11) /*A Fast Short REP CMPSB */ XEN_CPUFEATURE(CPUID_USER_DIS, 11*32+17) /* CPUID disable for CPL > 0 software */ +XEN_CPUFEATURE(EPSF, 11*32+18) /*A Enhanced Predictive Store Forwarding */ +XEN_CPUFEATURE(FSRSC, 11*32+19) /*A Fast Short REP SCASB */ +XEN_CPUFEATURE(AMD_PREFETCHI, 11*32+20) /*A PREFETCHIT{0,1} Instructions */ XEN_CPUFEATURE(SBPB, 11*32+27) /*A Selective Branch Predictor Barrier */ XEN_CPUFEATURE(IBPB_BRTYPE, 11*32+28) /*A IBPB flushes Branch Type predictions too */ XEN_CPUFEATURE(SRSO_NO, 11*32+29) /*A Hardware not vulenrable to Speculative Return Stack Overflow */ diff --git a/xen/tools/gen-cpuid.py b/xen/tools/gen-cpuid.py index 25d329ce48..bf3f9ec01e 100755 --- a/xen/tools/gen-cpuid.py +++ b/xen/tools/gen-cpuid.py @@ -329,6 +329,10 @@ def crunch_numbers(state): # In principle the TSXLDTRK insns could also be considered independent. RTM: [TSXLDTRK], + # Enhanced Predictive Store-Forwarding is a informational note on top + # of PSF. + PSFD: [EPSF], + # The ARCH_CAPS CPUID bit enumerates the availability of the whole register. ARCH_CAPS: list(range(RDCL_NO, RDCL_NO + 64)), -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |