version 1.42, 2021/10/07 12:52:27 |
version 1.43, 2022/01/14 15:48:50 |
Line 120 static const char * const x86_features[] |
|
Line 120 static const char * const x86_features[] |
|
NULL, "ibrs", "ibpb", "stibp", NULL, NULL, NULL, NULL}, |
NULL, "ibrs", "ibpb", "stibp", NULL, NULL, NULL, NULL}, |
|
|
{ /* (8) Linux mapping */ |
{ /* (8) Linux mapping */ |
"tpr_shadow", "vnmi", "flexpriority", "ept", |
"tpr_shadow", "vnmi", "flexpriority", "ept", "vpid", NULL, NULL, NULL, |
"vpid", "npt", "lbrv", "svm_lock", |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, "vmmcall", |
"nrip_save", "tsc_scale", "vmcb_clean", "flushbyasid", |
|
"decodeassists", "pausefilter", "pfthreshold", "vmmcall", |
|
NULL, "ept_ad", NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, "ept_ad", NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, |
|
|
Line 141 static const char * const x86_features[] |
|
Line 139 static const char * const x86_features[] |
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, |
|
|
{ /* (11) 0x0000000f:0 edx */ |
{ /* (11) Linux mapping */ |
NULL, "cqm_llc", NULL, NULL, NULL, NULL, NULL, NULL, |
"cqm_llc", "cqm_occup_llc", "cqm_mbm_total", "cqm_mbm_local", |
|
NULL, NULL, "split_lock_detect", NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, |
|
|
{ /* (12) 0x0000000f:1 edx */ |
{ /* (12) Intel-defined 0x00000007:1 eax */ |
"cqm_occup_llc", "cqm_mbm_total", "cqm_mbm_local", NULL, |
|
NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, |
|
"avx_vnni", "avx512_bf16", NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, |
Line 158 static const char * const x86_features[] |
|
Line 157 static const char * const x86_features[] |
|
"clzero", "irperf", "xsaveerptr", NULL, "rdpru", NULL, NULL, NULL, |
"clzero", "irperf", "xsaveerptr", NULL, "rdpru", NULL, NULL, NULL, |
NULL, "wbnoinvd", NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, "wbnoinvd", NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, "ppin", |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, "ppin", |
NULL, "virt_ssbd", NULL, NULL, NULL, NULL, NULL, NULL}, |
NULL, "virt_ssbd", NULL, "cppc", NULL, NULL, NULL, NULL}, |
|
|
{ /* (14) 0x00000006 eax */ |
{ /* (14) 0x00000006 eax */ |
"dtherm", "ida", "arat", NULL, "pln", NULL, "pts", "hwp", |
"dtherm", "ida", "arat", NULL, "pln", NULL, "pts", "hwp", |
Line 181 static const char * const x86_features[] |
|
Line 180 static const char * const x86_features[] |
|
"gfni", "vaes", "vpclmulqdq", "avx512_vnni", |
"gfni", "vaes", "vpclmulqdq", "avx512_vnni", |
"avx512_bitalg", "tme", "avx512_vpopcntdq", NULL, |
"avx512_bitalg", "tme", "avx512_vpopcntdq", NULL, |
"la57", NULL, NULL, NULL, NULL, NULL, "rdpid", NULL, |
"la57", NULL, NULL, NULL, NULL, NULL, "rdpid", NULL, |
NULL, "cldemote", NULL, "movdiri", "movdir64b", NULL, "sgx_lc", NULL}, |
NULL, "cldemote", NULL, "movdiri", |
|
"movdir64b", "enqcmd", "sgx_lc", NULL}, |
|
|
{ /* (17) 0x80000007 ebx */ |
{ /* (17) 0x80000007 ebx */ |
"overflow_recov", "succor", NULL, "smca", NULL, NULL, NULL, NULL, |
"overflow_recov", "succor", NULL, "smca", NULL, NULL, NULL, NULL, |
Line 192 static const char * const x86_features[] |
|
Line 192 static const char * const x86_features[] |
|
{ /* (18) Intel 0x00000007 edx */ |
{ /* (18) Intel 0x00000007 edx */ |
NULL, NULL, "avx512_4vnniw", "avx512_4fmaps", "fsrm", NULL, NULL, NULL, |
NULL, NULL, "avx512_4vnniw", "avx512_4fmaps", "fsrm", NULL, NULL, NULL, |
"vp2intersect", NULL, "md_clear", NULL, NULL, NULL, "serialize", NULL, |
"vp2intersect", NULL, "md_clear", NULL, NULL, NULL, "serialize", NULL, |
"tsxldtrk", NULL, "pconfig", NULL, NULL, NULL, NULL, "avx512_fp16", |
"tsxldtrk", NULL, "pconfig", "arch_lbr", |
|
NULL, NULL, NULL, "avx512_fp16", |
NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, |
"flush_l1d", "arch_capabilities", NULL, "ssbd"}, |
"flush_l1d", "arch_capabilities", NULL, "ssbd"}, |
|
|
Line 307 procfs_getonecpufeatures(struct cpu_info |
|
Line 308 procfs_getonecpufeatures(struct cpu_info |
|
diff = last - *left; |
diff = last - *left; |
} |
} |
|
|
if (ci->ci_max_cpuid >= 0x0f) { |
/* x86_features[11] is Linux defined mapping */ |
x86_cpuid2(0x0f, 0, descs); |
|
procfs_getonefeatreg(descs[3], x86_features[11], p + diff, |
|
left); |
|
diff = last - *left; |
|
|
|
x86_cpuid2(0x0f, 1, descs); |
if (ci->ci_max_cpuid >= 0x07) { |
|
x86_cpuid2(0x07, 1, descs); |
procfs_getonefeatreg(descs[3], x86_features[12], p + diff, |
procfs_getonefeatreg(descs[3], x86_features[12], p + diff, |
left); |
left); |
diff = last - *left; |
diff = last - *left; |