/proc/cpuinfo
文件在flags
行中包含此信息,但是所有这些隐秘缩写是什么意思?例如,给定
/proc/cpuinfo
的以下摘录,我是否有64位CPU?我有硬件虚拟化吗?model name : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
…
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority
#1 楼
x86(32位aka i386–i686和64位aka amd64。换句话说,是您的工作站,笔记本电脑或服务器。)
常见问题:我是否有…
64位(x86_64 / AMD64 / Intel64)?
lm
硬件虚拟化(VMX / AMD-V)?
vmx
(Intel),svm
(AMD)加速AES(AES-NI)?
aes
TXT(TPM)?
smx
虚拟机管理程序(已宣布)?
hypervisor
大多数其他功能仅对编译器或内核作者有意义。
所有标志
完整列表在内核源代码中的文件
arch/x86/include/asm/cpufeatures.h
中。英特尔定义的CPU功能,CPUID级别0x00000001(edx)
另请参阅Wikipedia和表2-27矢量扩展编程参考
fpu
:板载FPU(浮点支持)vme
:虚拟8086模式增强功能de
:调试扩展(CR4.DE)pse
:页面大小扩展(4MB内存页面)tsc
:时间戳计数器(RDTSC)msr
:特定于模型的寄存器(RDMSR,WRMSR)pae
:物理地址扩展(支持超过4GB的RAM)mce
:机器检查异常cx8
:CMPXCHG8指令(64位比较和交换)apic
:板载APIC sep
:SYSENTER / SYSEXIT mtrr
:存储器类型范围寄存器pge
:页面全局启用(PDE和PTE中的全局位)mca
:机器检查体系结构cmov
:CMOV指令(有条件移动)(也是FCMOV)pat
:页面属性表pse36
:36位PSE(大页面)pn
:处理器序列号clflush
:缓存行刷新指令dts
:调试存储(用于调试和分析指令的缓冲区)acpi
:通过MSR的ACPI(温度监控和时钟速度调制)mmx
:多媒体扩展fxsr
:FXSAVE / FXRSTOR,CR4.OSFXSR sse
:英特尔SSE矢量指令sse2
:SSE2 ss
:CPU自侦听ht
:超线程和/或多核tm
:自动时钟控制(热敏)监视器)ia64
:64位Intel Itanium体系结构(不要与带有标志x86-64
或标志lm
所指示的“ AMD64”位的Intel 64位x86体系结构相混淆)pbe
:挂起中断启用(PBE#引脚)唤醒支持AMD定义的CPU功能,CPUID级别0x80000001
另请参阅Wikipedia和表2-23 in Intel Advanced Vector扩展程序编程参考
syscall
:SYSCALL(Fast Sy干调用)和SYSRET(从快速系统调用返回)mp
:具有多处理能力。nx
:执行禁用mmxext
:AMD MMX扩展fxsr_opt
:FXSAVE / FXRSTOR优化pdpe1gb
:1 GB页面(允许hugepagesz=1G
)rdtscp
:已读时间戳记计数器和处理器ID lm
:长模式(x86-64:amd64,也称为Intel 64,即支持64位)3dnowext
:AMD 3DNow!扩展程序3dnow
:3DNow! (AMD矢量指令,与Intel的SSE1竞争)Transmeta定义的CPU功能,CPUID级别0x80860001
recovery
:处于恢复模式的CPU longrun
:Longrun电源控制lrti
:LongRun表接口其他功能,Linux定义的映射
cxmmx
:Cyrix MMX扩展k6_mtrr
:AMD K6非标准MTRR cyrix_arr
:Cyrix ARR(= MTRR)centaur_mcr
:半人马座MCR(= MTRR)constant_tsc
:TSC以恒定的速率波动up
:在UP上运行的SMP内核art
:始终运行的计时器arch_perfmon
:英特尔架构PerfMon pebs
:基于精确事件的采样bts
:分支跟踪存储rep_good
:rep微代码运行良好acc_power
:AMD累积动力机制nopl
:NOPL(0F 1F)指令xtopology
:cpu拓扑枚举扩展tsc_reliable
:已知TSC是可靠的nonstop_tsc
:TSC不会在C状态下停止cpuid
:CPU本身具有CPUID指令extd_apicid
:具有扩展的APICID(8位)amd_dcm
:多节点处理器aperfmperf
:APERFMPERF eagerfpu
:非延迟FPU还原nonstop_tsc_s3
:TSC在S3状态下不会停止q 4312079q:TSC的频率已知
tsc_known_freq
:CPU具有可恢复的机器检查英特尔定义的CPU功能,CPUID级别0x00000001(ecx)
请参阅英特尔高级矢量扩展编程参考中的Wikipedia和表2-26
mce_recovery
:SSE-3(“ Prescott新指令”)pni
:执行四字指令的无痕乘法— GCM加速器)pclmulqdq
:64位调试存储dtes64
:监视/等待支持(Intel SSE3补充) monitor
:CPL质量调试存储ds_cpl
:硬件虚拟化:英特尔VMX vmx
:更安全的模式:TXT(支持TPM)smx
:增强SpeedStep est
:温度监控器2 tm2
:补充SSE-3 ssse3
:上下文ID cid
:硅调试sdbg
:融合乘法加法fma
:CMPXCHG16B cx16
:发送任务优先级消息xtpr
:性能功能pdcm
:流程上下文标识符pcid
:直接缓存访问dca
:SSE-4.1 sse4_1
:SSE-4.2 sse4_2
:x2APIC x2apic
:交换字节指令后移动数据movbe
:返回设置为1条指令的位数汉明重量,即位数)popcnt
:TSC截止时间计时器tsc_deadline_timer
/ aes
:高级加密标准(新指令)aes-ni
:保存处理器扩展状态:还提供XGETBY,XRSTOR,XSETBY xsave
:高级矢量扩展avx
:16位fp转换(CVT16)f16c
:从硬件随机数生成器指令读取随机数rdrand
:运行于虚拟机管理程序VIA / Cyrix / Centaur定义的CPU功能,CPUID级别0xC0000001
xstore)
hypervisor
:启用随机数生成器rng
:CPU上加密(xcrypt)rng_en
:CPU上加密启用ace
:高级密码引擎v2 ace_en
:启用ACE v2 ace2
:PadLock哈希引擎ace2_en
:启用PHE phe
:PadLock蒙哥马利乘法器phe_en
:启用PMM 更多扩展的AMD标志:CPUID级别0x80000001,ecx
pmm
:以长模式从标志(LAHF)加载AH并将AH存储到标志(SAHF)中pmm_en
:如果是,则超线程无效lahf_lm
:“安全虚拟机”:AMD-V cmp_legacy
:扩展的APIC空间svm
:32位模式下的CR8 extapic
:高级位操作cr8_legacy
:SSE-4A abm
:指示在以下情况下是否生成通用保护异常(#GP)一些旧版SSE指令对未对齐的数据进行操作。还取决于CR0和对齐检查位sse4a
:3DNow预取指令misalignsse
:指示OS可见的解决方法,它使OS可以处理处理器勘误。3dnowprefetch
:基于指令的采样osvw
:扩展的AVX指令ibs
:SKINIT / STGI指令xop
:看门狗定时器skinit
:轻量级分析wdt
:4个操作数MAC指令lwp
:转换缓存扩展fma4
:NodeId MSR tce
:尾随位操作nodeid_msr
:拓扑扩展CPUID leafs tbm
:核心性能计数器扩展topoext
:NB性能计数器扩展perfctr_core
:数据断点扩展perfctr_nb
:性能时间戳计数器bpext
:L2性能计数器Exte nsions ptsc
:perfctr_l2
扩展名(mwaitx
/ MWAIT
)辅助标志:已定义Linux-适用于分散在各种CPUID级别的功能
MONITORX
:Ring 3 MONITOR / MWAIT MWAITX
:Intel CPUID故障ring3mwait
:AMD Core Performance Boost cpuid_fault
:IA32_ENERGY_PERF_BIAS support cpb
:缓存分配技术L3 epb
:缓存分配技术L2 cat_l3
:代码和数据优先级分配L3 cat_l2
:有效地cdp_l3
和invpcid_single
invpcid
:AMD HW-PState CR4.PCIDE=1
:AMD ProcFeedbackInterface hw_pstate
:AMD安全内存加密proc_feedback
:内核页表隔离(Kaiser)sme
:Spectre变体2的Retpoline缓解(间接分支)pti
:AMD Retpoline缓解retpoline
:英特尔处理器库存编号retpoline_amd
:AVX-512神经网络指令intel_ppin
:AVX-512乘法累加单精度avx512_4vnniw
:内存带宽分配avx512_4fmaps
:在上下文交换机上填充RSB 虚拟化标志:Linux定义的
mba
:英特尔TPR Shadow rsb_ctxsw
:英特尔虚拟NMI tpr_shadow
:英特尔FlexPriority vnmi
:英特尔扩展页表flexpriority
:英特尔虚拟处理器ID ept
:vpid
优于vmmcall
英特尔定义的CPU功能,CPUID级别0x00000007:0(ebx)
VMMCALL
:{RD / WR} {FS / GS} BASE指令VMCALL
:TSC调整MSR fsgsbase
:第一组位操作扩展tsc_adjust
:硬件锁定清除bmi1
:AVX2指令hle
:主管模式执行保护avx2
:第二组位操作扩展smep
:增强型REP MOVSB / STOSB bmi2
:使处理器上下文ID无效erms
:受限的事务性内存invpcid
:缓存QoS监视rtm
:内存保护扩展cqm
:资源导向器技术分配mpx
:AVX-512基础rdt_a
:AVX-512双/四进制指令avx512f
:RDSEED指令avx512dq
:ADCX和ADOX指令rdseed
:超级用户模式访问阻止adx
:smap
指令clflushopt
:CLFLUSHOPT
指令clwb
:英特尔处理器跟踪CLWB
:AVX-512预取intel_pt
:AVX-512指数和倒数avx512pf
:AVX-512冲突检测avx512er
:SHA1 / SHA256指令扩展avx512cd
:AVX-512字节/字指令sha_ni
:AVX-512 128/256矢量长度扩展扩展状态功能,CPUID级别0x0000000d:1(eax)
avx512bw
:优化的avx512vl
xsaveopt
:XSAVE
xsavec
:XSAVEC
,ECX = 1 xgetbv1
:XGETBV
/ xsaves
英特尔定义的CPU QoS子叶,CPUID级别0x0000000F:0(edx)
XSAVES
:LLC QoS Intel定义的CPU QoS子叶,CPUID级别0x0000000F:1(edx)
XRSTORS
: LLC占用率监控cqm_llc
:LLC总MBM监控cqm_occup_llc
:LL C本地MBM监视AMD定义的CPU功能,CPUID级别0x80000008(ebx)
cqm_mbm_total
:cqm_mbm_local
指令clzero
:指令退回性能计数器CLZERO
:始终保存/恢复FP错误指针热和电源管理叶,CPUID级别0x00000006(eax)
irperf
(以前为xsaveerptr
):数字热传感器dtherm
:英特尔动态加速dts
:始终运行APIC计时器ida
:英特尔功率限制通知arat
:英特尔封装散热状态pln
:英特尔硬件P状态pts
: HWP通知hwp
:HWP活动窗口hwp_notify
:HWP能源绩效偏好hwp_act_window
:HWP封装级请求AMD SVM功能标识,CPUID级别0x8000000a(edx)
hwp_epp
:AMD嵌套页表支持hwp_pkg_req
:AMD LBR虚拟化支持npt
:AMD SVM锁定MSR lbrv
:AMD SVM next_rip保存svm_lock
:AMD TSC扩展支持nrip_save
:AMD VMCB清洁位支持tsc_scale
:AMD ASID刷新支持vmcb_clean
:AMD解码辅助支持flushbyasid
:AMD过滤的暂停拦截器decodeassists
:AMD暂停过滤器阈值pausefilter
:虚拟中断控制器pfthreshold
:虚拟VMSAVE VMLOAD avic
:虚拟GIF 英特尔定义的CPU功能,CPUID级别0x00000007:0(ecx)
vmsave_vmload
:AVX512矢量位操作指令vgif
:用户模式指令保护avx512vbmi
:用户空间保护键/>
umip
:启用OS保护键pku
:附加的AVX512矢量位操作离子指令ospke
:Galois Field新指令avx512_vbmi2
:矢量AES gfni
:进位减法乘法双四字vaes
:矢量神经网络指令vpclmulqdq
:VPOPCNT [B,W]和VPSHUF-BITQMB指令avx512_vnni
:DW / QW矢量的POPCNT avx512_bitalg
:5级页表avx512_vpopcntdq
:RDPID指令AMD定义的CPU功能,CPUID级别0x80000007(ebx)
la57
:支持MCA溢出恢复rdpid
:无法纠正的错误包含和恢复overflow_recov
:可扩展的MCA 检测到的CPU错误(Linux定义)
succor
:英特尔F00F smca
:CPU FDIV f00f
:Cyrix 6x86昏迷fdiv
:coma
AMD Erratum 383 amd_tlb_mmatch
:tlb_mmatch
AMD Erratum 400 amd_apic_c1e
:本地APIC aka 11AP错误apic_c1e
:FXSAVE泄漏FOP / FIP / FOP 11ap
:AAI65,需要在MONITOR 前放置CLFLUSH
fxsave_leak
: SYSRET无法修复SS attrs clflush_monitor
:“” IRET转换为16位SS会破坏ESP / RSP高位sysret_ss_attrs
:取消选择器会保留基数/>
espfix
:在GS上没有输入dep的SWAPGS null_seg
:唤醒远程CPU所需的IPI swapgs_fence
:CPU受Erratum 400的影响monitor
:CPU受到崩溃攻击的影响,需要内核页表隔离amd_e400
:CPU受到带有条件分支的Spectre变体1攻击的影响cpu_meltdown
:CPU受到具有间接分支的Spectre变体2攻击的影响spectre_v1
:CPU受到“推测性存储绕过”漏洞(Spectre变体4)的影响。PS
该列表来自内核源代码
spectre_v2
。这些标志以与源代码相同的顺序列出。请提供帮助,方法是在缺少功能时添加指向功能说明的链接,为功能名称不简短的功能编写简短说明,并为新的内核版本更新列表。当前列表来自Linux 4.15以及以后的一些补充。#2 楼
ARM在ARM处理器上,
features:
行中提到了一些功能。此处仅提及与ARM体系结构直接相关的功能,而未提及芯片制造商或片上系统的特定功能。这些功能是通过使用
read_cpuid()
查找CPU ID并查找而获得的。在编译时已知的处理器类型定义中,功能以HWCAP_xxx
标志的掩码表示。相应的字符串在hwcap_str
等中,在setup.c
等中。在下面的列表中,ARMv6引入了SIMD指令和数据类型。 ARMv7提供了高级SIMD指令和数据类型。在32位ARM机器上,
neon
发出Advanced SIMD信号。而asimd
在64位Arm机器上发出高级SIMD信号。swp
:SWP
指令(原子读-修改-写)half
:半字加载和存储thumb
:Thumb(16位指令集)26bit
:“ 26位”模型(处理器状态寄存器折叠到程序中)计数器)fastmult
:32×32→64位乘法fpa
:浮点加速器vfp
:VFP(早期SIMD矢量浮点指令)edsp
:DSP扩展(ARM9 CPU的'e'变体,以及上述所有其他类型)java
:Jazelle( Java字节码加速器)iwmmxt
:类似于Intel MMX的SIMD指令crunch
:MaverickCrunch协处理器(如果启用了内核支持)thumbee
:ThumbEE neon
:高级SIMD / NEON(AArch64较旧内核上的asimd
)vfpv3
:VFP版本3 vfpv3d16
:VFP版本3带有16个D寄存器tls
:TLS寄存器vfpv4
:VFP版本4带有快速上下文切换idiva
:ARM模式下的SDIV
和UDIV
硬件部门拇指模式下的
idivt
:SDIV
和UDIV
硬件部门vfpd32
:带有32个D寄存器的VFP lpae
:大型物理地址扩展(> 4GB物理内存32位体系结构)evtstrm
:使用通用体系结构计时器的内核事件流aes
:硬件加速的AES(秘密密钥加密)pmull{2}
:64×64→128位F2m乘法-已认证加密的GCM模式的加速硬件加速的SHA-256
sha1
:硬件加速的CRC-32 sha2
线还表示处理器型号。根据型号的不同,在crc32
或Hardware:
下的其他文件中,或者在启动时内核日志消息中可能还存在其他信息。不幸的是,每个ARM CPU制造商都有自己的方法来报告处理器功能(如果有的话)。评论
zh.wikichip.org/wiki/arm/armv8
–Z玻色子
19年5月2日,9:30
#3 楼
x86在4.1.3 x86和Intel手册中进行查找
arch/x86/include/asm/cpufeature.h
包含完整列表。定义值的类型为:
X*32 + Y
例如:
#define X86_FEATURE_FPU ( 0*32+ 0) /* Onboard FPU */
从CPUID提取的功能标志存储在以下位置:
__u32 x86_capability[NCAPINTS + NBUGINTS];
的字段在
struct cpuinfo_x86 boot_cpu_data
定义的,它通过以下方式初始化
x86/kernel/setup.c
函数。每个
__init
数组元素来自哪里:| index | eax | ecx | output | file |
|-------|----------|-----|--------|-------------|
| 0 | 1 | 0 | edx | common.c |
| 1 | 80000001 | | edx | common.c |
| 2 | 80860001 | | edx | transmeta.c |
| 3 | | | | |
| 4 | 1 | 0 | ecx | common.c |
| 5 | C0000001 | | edx | centaur.c |
| 6 | 80000001 | | ecx | common.c |
| 7 | | | | scattered.c |
| 8 | | | | |
| 9 | 7 | 0 | ebx | common.c |
| 10 | D | 1 | eax | common.c |
| 11 | F | 0 | edx | common.c |
| 12 | F | 1 | edx | common.c |
注释:
空条目表示:“来自不同地方”或“不可用”。
x86_capability
:是index
的索引,例如x86_capability
x86_capability[0]
和eax
:是十六进制CPUID的输入值。使用exc
的输入(数量较少)称为子叶(在两级树中,其根为exc
)。eax
:从中获取CPUID输出的寄存器output
:是定义这些字段的文件。路径是相对于file
的。arch/x86/kernel/cpu/
:是Novafora https://www.crunchbase.com收购的CPU供应商的名称https://en.wikipedia.org/wiki/Transmeta。 / organization / novafora transmeta
:是被VIA https://en.wikipedia收购的CPU供应商的名称https://en.wikipedia.org/wiki/Centaur_Technology .org / wiki / VIA_Technologies。 Cyrix是另一个。结论:大多数条目直接来自CPUID输出寄存器,并在
centaur
中通过类似以下方式设置:c->x86_capability[0] = edx;
很容易在Intel手册上找到有关CPUID的批处理。
其他则分散在整个源代码中,并且可以使用
common.c
逐位设置。要找到它们,请在
set_cpu_cap
内使用git grep X86_FEATURE_XXX
。通常,您可以从周围的代码中推断出它们对应的CPUID位。 />
其他有趣的事实
标志实际上是在
arch/x86
上打印的,代码为:seq_puts(m, "flags\t\t:");
for (i = 0; i < 32*NCAPINTS; i++)
if (cpu_has(c, i) && x86_cap_flags[i] != NULL)
seq_printf(m, " %s", x86_cap_flags[i]);
其中:
arch/x86/kernel/cpu/proc.c
对功能进行主要检查。cpu_has
包含与每个标志相对应的字符串。此被作为回调传递给
x86_cap_flags[i]
系统设置程序。入口点位于proc
。fs/proc/cpuinfo.c
字符串是由x86_cap_flags
直接从arch/x86/kernel/cpu/mkcapflags.h
生成的,方法是将其与arch/x86/include/asm/cpufeature.h
进行“解析” ... 输出到构建目录的
sed
和生成的数组如下所示:const char * const x86_cap_flags[NCAPINTS*32] = {
[X86_FEATURE_FPU] = "fpu",
[X86_FEATURE_VME] = "vme",
,例如
arch/x86/kernel/cpu/capflags.c
对应于字符串X86_FEATURE_FPU
,依此类推。"fpu"
分为以下两种情况,代码如下:#define cpu_has(c, bit) \
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
test_cpu_cap(c, bit))
它们是:
cpu_has
:该标志是内核运行所必需的。由
__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit)
内部的数据确定,该注释为:Define minimum CPUID feature set for kernel These bits are checked
really early to actually display a visible error message before the
kernel dies. Make sure to assign features to the proper mask!
在编译时已知(内核要求),已经在启动时检查过,如果在编译时知道
required-features.h
,则可以在编译时解决该检查。因此检查
bit
是否为编译的__builtin_constant_p(bit)
时间常数。bit
:这将消耗t中的test_cpu_cap
数据他CPUID
全局评论
您已经解释了如何从缩写到更长的名称,但是长名称通常并不太容易理解,而cpuid则以更方便的方式实现。我问这个问题在哪里有记载名字的地方。
–吉尔斯'所以-不再是邪恶的'
2015年8月1日在21:04
@Gilles这主要是为那些想要创建表/无法在表中找到其特征的人提供的,就像我一样:-)但是,在大多数情况下,一旦您查看了源代码的正确点,到CPUID的映射就是即时。
– Ciro Santilli郝海东冠状病六四事件法轮功
15年8月1日在21:07
#4 楼
或者,您也可以使用cpuid
程序,它必须在debian存储库中。它会转储有关您CPU的所有可能信息并提供一些解释,因此您不会得到那些晦涩的标志。评论
cpuid扩展缩写。我不会真正称呼它的输出说明。知道ht意味着“超线程”在某种程度上可以解释它,但是知道mmx意味着“ MMX指令集”,而不是那么多,而知道mca意味着“机器检查架构”。
–吉尔斯'所以-不再是邪恶的'
2014年5月22日在18:10
@Gilles ...但是,“ Machine Check Architecture”肯定比“ mca”更好的Google查询;)
–阿洛瓦·马哈德
2014年6月6日10:07
#5 楼
最佳答案是最好的“完整列表位于内核源代码中的arch / x86 / include / asm / cpufeatures.h文件中。”使用该手册和Internet /处理器手册来了解每个标志的含义。添加一个答案以补充现有答案,并提供来自HP Proliant G8 Intel Xeon服务器的特定示例,以显示lscpu输出,并比较该计算机作为VM主机和在其上运行的VM的lscpu /标志。 Openstack qemu-kvm是在此处运行的虚拟化服务器。
CPU:24 vs 22
2个固定在其上的openstack控制器的CPU VM主机。
总共24个CPU。在VM中可以看到22个可用的CPU。
线程/核心/套接字/ NUMA显示不同。 (请参见下文)
型号,型号名称,步进,CPU MHz,L2缓存大小显示为不同。 (请参阅下面的更多信息)
在主机上:型号:45
型号名称:Intel(R)Xeon(R)CPU E5-2640 0 @ 2.50GHz
在VM上:型号:42
型号名称:Intel Xeon E312xx(Sandy Bridge,IBRS更新)
FLAGS
VM上的额外2个标志:
管理程序:在管理程序上运行
tsc_adjust:TSC调整MSR
TSC =时间戳计数器(Intel寄存器)https: //wiki.osdev.org/TSC
MSR =特定于模型的寄存器https://wiki.osdev.org/MSR
丢失VM上的31个标志:
dts:调试存储(用于调试和性能分析指令的缓冲区)
acpi:通过MSR的ACPI(温度监控和时钟速度调制)
https://wiki.osdev.org/ACPI
ACPI(高级配置和电源接口)是PC的电源管理和配置标准。
:超线程和/或多核
/> tm:自动时钟控制(温度监控器)
pbe:待定暂停时间能够(PBE#引脚)唤醒支持
arch_perfmon:Intel体系结构PerfMon
Pebs:基于精确事件的采样
bts:分支跟踪存储
nonstop_tsc:TSC不会在C状态下停止
TSC =时间戳计数器(Intel寄存器)https://wiki.osdev.org/TSC
aperfmperf:APERF和MPERF是MSR寄存器
”“ APERF和MPERF是可以提供的MSR寄存器反馈
当前的CPU频率。”
dtes64:64位调试存储
监视器:监视/等待支持(Intel SSE3补充)
ds_cpl:CPL质量。调试存储-CPL是当前特权级别(CS寄存器中的位)
vmx:硬件虚拟化:Intel VMX
smx:更安全的模式:TXT(受信任的执行技术)(TPM(受信任的平台模块)支持)
est:增强型SpeedStep
tm2:Thermal Monitor 2
xtpr:发送任务优先级消息
pdcm:性能功能
dca:直接缓存访问
epb: IA32_ENERGY_PERF_BIAS支持
tpr_shadow:英特尔TPR影子
TPR =任务优先级寄存器
vnmi:英特尔虚拟NMI
https://wiki.osdev.org/NMI(不可屏蔽中断)
flexpriority:英特尔FlexPriority
英特尔虚拟化技术
部门:英特尔扩展页表
vpid:英特尔虚拟处理器ID
dtherm:(以前是dts)数字热传感器
ida:英特尔动态加速
pln:英特尔功率限制通知
要点:英特尔封装散热状态
flush_l1d:刷新L1(级别1)D(数据)缓存
lscpu完整输出:
q43 12078q
#6 楼
受@Gilles的最高答案的启发,下面是一个bash脚本(需要bash v4或更高版本,一个网络连接以及一个最新的wget)来注释当前的CPU标志: #!/bin/bash
CPUFEATURES="$(wget -qO- "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/plain/arch/x86/include/asm/cpufeatures.h")"
grep "^flags " /proc/cpuinfo |
sed 's/^.*: //' |
tr ' ' '\n' |
while read line; do
echo -n "${line}: "
echo "$CPUFEATURES" |
grep "FEATURE_${line^^} " |
sed 's|.*) /\* ||' |
sed 's| \*/$||'
done
评论
感谢@Gilles和编辑提供的信息性问题及其摘要和详细答案。现在,要检查任何CPU功能,我使用NixCraft中的以下内容,例如用于Intel CPU:$ egrep -wo ^ flags | vmx | ept | vpid | npt | tpr_shadow | flexpriority | vnmi | lm | aes'/ proc / cpuinfo --color |排序-u。还有CLI / GUI出色的i-nex。
–tuk0z
2015年9月22日14:55
出色的解释和链接集合;感谢所有贡献者。
– Paul Gear
17 Mar 8 '17 at 4:11
错误数据来自何处?它似乎未在cpufeatures.h文件中列出。
– Drazisil
18年6月13日在2:12
@Drazisil据我所记得,所有条目均来自cpufeatures.h的指示版本。对描述进行了编辑,以使它们在有人尝试执行此操作时更易于理解和提供更多信息。
–吉尔斯'所以-不再是邪恶的'
18年6月13日在6:22
@TrevorBoydSmith不完全按时间顺序,但接近。每个标志都有一个内部编号,并且标志按数字顺序列出。数字的范围很广,具体取决于分配数字的人。这些数字通常是在每个范围内按时间顺序分配的。
–吉尔斯'所以-不再是邪恶的'
20 Apr 10 '13:56