从 Cpuinfo 读取 CPU 标志
Yahya Irmak
2022年5月11日
本文将解释如何在 Linux 中读取 cpuinfo
信息。稍后,我们将研究什么是 CPU 标志及其含义。
在 Linux 中阅读 cpuinfo
/proc/cpuinfo
文件包含有关计算机中 CPU 的详细信息。使用以下命令读取文件的内容。
cat /proc/cpuinfo
在这里,我们可以看到,
- 处理器数量,
- CPU 供应商、系列、型号名称,
- CPU 的内核数量,
- 缓存、TLB、clflush 和地址大小,
- 许多标志和其他信息。
在本文的其余部分,我们将解释这些标志中最常见的含义。有关所有标志的详细信息,请参阅 arch/x86/include/asm/cpufeature.h。
/proc/cpuinfo
中最常见的标志
一个 CPU 可以具有数百个功能,这些功能因型号而异。在这里,我们将包括官方文档中描述的最常见标志的定义。
AMD 定义的 CPU 特性
标志 | 说明 |
---|---|
SYSCALL |
系统调用/系统调用 |
MP |
国会议员能力 |
NX |
执行禁用 |
MMXEXT |
AMD MMX 扩展 |
FXSR_OPT |
FXSAVE/FXRSTOR 优化 |
GBPAGES |
pdpe1gb GB 页面 |
LM |
长模式 (x86-64) |
扩展 AMD 标志
标志 | 说明 |
---|---|
LAHF_LM |
长模式下的 LAHF/SAHF |
CMP_LEGACY |
如果是,超线程无效 |
SVM |
安全虚拟机 |
ABM |
高级位操作 |
MISALIGNSSE |
未对齐的 SSE 模式 |
3DNOWPREFETCH |
3DNow 预取指令 |
OSVW |
操作系统可见的解决方法 |
IBS |
基于指令的采样 |
XOP |
扩展的 AVX 指令 |
SKINIT |
SKINIT/STGI 指令 |
WDT |
看门狗定时器 |
LWP |
轻量级分析 |
TCE |
翻译缓存扩展 |
TBM |
尾随位操作 |
TOPOEXT |
拓扑扩展 CPUID 叶 |
PERFCTR_CORE |
核心性能计数器扩展 |
BPEXT |
数据断点扩展 |
Intel 定义的 CPU 特性
标志 | 描述 |
---|---|
FPU |
板载 FPU |
VME |
虚拟模式扩展 |
DE |
调试扩展 |
PSE |
页面大小扩展 |
TSC |
时间戳计数器 |
MSR |
特定于模型的寄存器 |
PAE |
物理地址扩展 |
MCE |
机器检查异常 |
MTRR |
内存类型范围寄存器 |
PGE |
页面全局启用 |
MCA |
机器检查架构 |
PAT |
页面属性表 |
MMX |
多媒体扩展 |
PBE |
挂起中断启用 |
DTES64 |
64 位调试存储 |
MWAIT |
监视器 监视器/Mwait 支持 |
VMX |
硬件虚拟化 |
SMX |
更安全的模式 |
TM2 |
热监视器 2 |
XTPR |
发送任务优先级消息 |
PDCM |
性能能力 |
PCID |
进程上下文标识符 |
DCA |
直接缓存访问 |
HYPERVISOR |
在管理程序上运行 |
虚拟化标志
标志 | 说明 |
---|---|
EPT |
英特尔扩展页表 |
VPID |
英特尔虚拟处理器 ID |
NPT |
AMD 嵌套页表支持 |
LBRV |
AMD LBR 虚拟化支持 |
NRIPS |
nrip_save AMD SVM next_rip 保存 |
TSCRATEMSR |
tsc_scale AMD TSC 缩放支持 |
VMCBCLEAN |
vmcb_clean AMD VMCB 清洁位支持 |
VMCBCLEAN |
AMD 按 ASID 刷新支持 |
FLUSHBYASID |
AMD 解码辅助支持 |
PAUSEFILTER |
AMD 过滤暂停拦截 |
PFTHRESHOLD |
AMD 暂停过滤阈值 |
VMMCALL |
更喜欢 vmmcall 到 vmcall |
辅助标志
标志 | 描述 |
---|---|
IDA |
英特尔动态加速 |
ARAT |
始终运行 APIC 计时器 |
CPB |
AMD 核心性能提升 |
EPB |
IA32_ENERGY_PERF_BIAS 支持 |
PLN |
英特尔功率限制通知 |
PTS |
英特尔封装散热状态 |
DTHERM |
数字热传感器 |
PROC_FEEDBACK |
AMD ProcFeedback 接口 |
INTEL_PT |
英特尔处理器跟踪 |
检测到的错误标志
标志 | 描述:F00F |
---|---|
F00F |
英特尔 F00F |
FDIV |
FPU FDIV |
COMA |
Cyrix 6x86 coma |
AMD_TLB_MMATCH |
tlb_mmatch AMD 勘误表 383 |
AMD_APIC_C1E |
apic_c1e AMD 勘误表 400 |
11AP |
错误的本地 APIC 又名 11AP |
FXSAVE_LEAK |
FXSAVE 泄漏 FOP/FIP/FOP |
CLFLUSH_MONITOR |
在 MONITOR 之前需要 AAI65、CLFLUSH |
SYSRET_SS_ATTRS |
SYSRET 不修复 SS attrs |
作者: Yahya Irmak
Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.
LinkedIn