Cpuinfo から CPU フラグを読み取る
Yahya Irmak
2022年3月24日
この記事では、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 |
SYSCALL / SYSRET |
MP |
MP 対応 |
NX |
無効化を実行 |
MMXEXT |
AMDMMX 拡張機能 |
FXSR_OPT |
FXSAVE/FXRSTOR の最適化 |
GBPAGES |
pdpe1gb GB ページ |
LM |
ロングモード(x86-64) |
拡張 AMD フラグ
フラグ | 説明 |
---|---|
LAHF_LM |
ロングモードの LAHF / SAHF |
CMP_LEGACY |
はいの場合、ハイパースレッディングは無効です |
SVM |
安全な仮想マシン |
ABM |
高度なビット操作 |
MISALIGNSSE |
ずれた SSE モード |
3DNOWPREFETCH |
3DNow プリフェッチ命令 |
OSVW |
OS の目に見える回避策 |
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 | ダイレクトキャッシュアクセス |
ハイパーバイザー | ハイパーバイザーで実行 |
仮想化フラグ
フラグ | 説明 |
---|---|
EPT | Intel 拡張ページテーブル |
VPID | Intel 仮想プロセッサ ID |
NPT | AMD ネストページテーブルのサポート |
LBRV | AMDLBR 仮想化サポート |
NRIPS | nrip_save AMDSVM next_rip save |
TSCRATEMSR | tsc_scale AMDTSC スケーリングのサポート |
VMCBCLEAN | vmcb_clean AMDVMCB クリーンビットのサポート |
FLUSHBYASID | AMD の ASID によるフラッシュのサポート |
DECODEASSISTS | AMD DecodeAssists のサポート |
DECODEASSISTS | AMD でフィルタリングされた一時停止インターセプト |
PFTHRESHOLD | AMD 一時停止フィルターのしきい値 |
VMMCALL | vmcall よりも vmmcall を優先する |
補助フラグ
フラグ | 説明 |
---|---|
IDA | インテルダイナミックアクセラレーション |
ARAT | 常に APIC タイマーを実行 |
CPB | AMD コアパフォーマンスブースト |
EPB | IA32_ENERGY_PERF_BIAS サポート |
PLN | Intel 電力制限通知 |
PTS | インテルパッケージのサーマルステータス |
DTHERM | デジタル熱センサー |
PROC_FEEDBACK | AMD ProcFeedbackInterface |
INTEL_PT | Intel プロセッサトレース |
検出されたバグフラグ
フラグ | 説明 |
---|---|
F00F | Intel F00F |
FDIV | FPU FDIV |
COMA | Cyrix6x86 コマ |
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 | AAI65、モニターの前に CLFLUSH が必要 |
SYSRET_SS_ATTRS | SYSRET は SS 属性を修正しません |
著者: Yahya Irmak
Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.
LinkedIn