GNU/Linux >> Linux の 問題 >  >> Linux

Linux – / proc / cpuinfoのフラグはどういう意味ですか?

プロセッサに特定の機能があるかどうかを確認するにはどうすればよいですか? (64ビット命令セット、ハードウェア支援仮想化、暗号化アクセラレータなど)ファイル / 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

承認された回答:

x86

(32ビットa.k.a. i386–i686および64ビットa.k.a. amd64。つまり、ワークステーション、ラップトップ、またはサーバー。)

よくある質問:持っていますか…

  • 64ビット(x86_64 / AMD64 / Intel64)? lm
  • ハードウェア仮想化(VMX / AMD-V)? vmx (Intel)、 svm (AMD)
  • Accelerated AES(AES-NI)? aes
  • TXT(TPM)? smx
  • ハイパーバイザー(そのように発表されました)? ハイパーバイザー

他の機能のほとんどは、コンパイラまたはカーネルの作成者のみが関心を持っています。

すべてのフラグ

完全なリストは、カーネルソースの arch / x86 / include / asm / cpufeatures.hファイルにあります。 。

Intel定義のCPU機能、CPUIDレベル0x00000001(edx)

インテルアドバンストベクターエクステンションプログラミングリファレンスのウィキペディアと表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 :IntelSSEベクトル命令
  • sse2 :SSE2
  • ss :CPUセルフスヌープ
  • ht :ハイパースレッディングおよび/またはマルチコア
  • tm :自動時計制御(熱モニター)
  • ia64 :Intel Itanium Architecture 64ビット(フラグ x86-64を備えたIntelの64ビットx86アーキテクチャと混同しないでください。 またはフラグlmで示される「AMD64」ビット )
  • pbe :保留中のブレークイネーブル(PBE#ピン)ウェイクアップサポート

AMDで定義されたCPU機能、CPUIDレベル0x80000001

インテルアドバンストベクターエクステンションプログラミングリファレンスのウィキペディアと表2-23も参照してください

  • syscall :SYSCALL(高速システムコール)およびSYSRET(高速システムコールからの復帰)
  • mp :マルチプロセッシング対応。
  • nx :無効化を実行
  • mmxext :AMDMMX拡張機能
  • 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と競合)

トランスメタで定義されたCPU機能、CPUIDレベル0x80860001

  • リカバリ :リカバリモードのCPU
  • longrun :長期的な電力制御
  • lrti :LongRunテーブルインターフェイス

その他の機能、Linux定義のマッピング

  • cxmmx :CyrixMMX拡張機能
  • k6_mtrr :AMDK6非標準MTRR
  • cyrix_arr :Cyrix ARR(=MTRR)
  • centaur_mcr :Centaur MCR(=MTRR)
  • constant_tsc :TSCは一定の速度でティックします
  • up :UPで実行されているSMPカーネル
  • アート :常時実行タイマー
  • arch_perfmon :Intel Architectural PerfMon
  • ペブ :正確なイベントベースのサンプリング
  • 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状態で停止しません
  • tsc_known_freq :TSCには既知の頻度があります
  • mce_recovery :CPUには回復可能なマシンチェックがあります

Intel定義のCPU機能、CPUIDレベル0x00000001(ecx)

インテルアドバンストベクターエクステンションプログラミングリファレンスのウィキペディアと表2-26も参照してください

  • pni :SSE-3(「プレスコットの新しい指示」)
  • pclmulqdq :クアッドワード命令のキャリーレス乗算を実行— GCMのアクセラレータ)
  • dtes64 :64ビットデバッグストア
  • モニター :モニター/ Mwaitサポート(Intel SSE3サプリメント)
  • ds_cpl :CPL品質デバッグストア
  • vmx :ハードウェア仮想化:Intel VMX
  • smx :より安全なモード:TXT(TPMサポート)
  • est :拡張SpeedStep
  • tm2 :サーマルモニター2
  • ssse3 :補足SSE-3
  • cid :コンテキストID
  • sdbg :シリコンデバッグ
  • fma :融合乗算-追加
  • cx16 :CMPXCHG16B
  • xtpr :タスク優先メッセージを送信する
  • pdcm :パフォーマンス機能
  • pcid :プロセスコンテキスト識別子
  • dca :直接キャッシュアクセス
  • sse4_1 :SSE-4.1
  • sse4_2 :SSE-4.2
  • x2apic :x2APIC
  • movbe :バイトスワッピング命令後にデータを移動する
  • popcnt :1命令に設定されたビット数のカウントを返します(ハミング重み、つまりビットカウント)
  • tsc_deadline_timer :Tsc期限タイマー
  • aes / aes-ni :Advanced Encryption Standard(新しい手順)
  • xsave :プロセッサ拡張状態の保存:XGETBY、XRSTOR、XSETBYも提供します
  • avx :高度なベクター拡張機能
  • f16c :16ビットfp変換(CVT16)
  • rdrand :ハードウェア乱数ジェネレーター命令から乱数を読み取ります
  • ハイパーバイザー :ハイパーバイザーで実行
関連:Linux –プラグが抜かれたディスプレイ(xrandr)を無効にしますか?

VIA / Cyrix / Centaurで定義されたCPU機能、CPUIDレベル0xC0000001

  • rng :乱数ジェネレーターが存在します(xstore)
  • rng_en :乱数ジェネレーターが有効
  • エース :オンCPU暗号化(xcrypt)
  • ace_en :オンCPU暗号化が有効
  • ace2 :高度な暗号化エンジンv2
  • ace2_en :ACEv2が有効
  • phe :PadLockハッシュエンジン
  • phe_en :PHEが有効
  • pmm :PadLock Montgomery Multiplier
  • pmm_en :PMMが有効

より拡張されたAMDフラグ:CPUIDレベル0x80000001、ecx

  • lahf_lm :フラグ(LAHF)からAHをロードし、ロングモードでフラグ(SAHF)にAHを保存します
  • cmp_legacy :はいの場合、ハイパースレッディングは無効です
  • svm :「安全な仮想マシン」:AMD-V
  • extapic :拡張APICスペース
  • cr8_legacy :32ビットモードのCR8
  • abm :高度なビット操作
  • sse4a :SSE-4A
  • misalignsse :一部のレガシーSSE命令がアラインされていないデータに対して動作するときに、一般保護例外(#GP)が生成されるかどうかを示します。 CR0とアライメントチェックビットにも依存します
  • 3dnowprefetch :3DNowプリフェッチ命令
  • osvw :OSがプロセッサのエラッタを回避できるようにするOSVisibleWorkaroundを示します。
  • ibs :命令ベースのサンプリング
  • xop :拡張AVX命令
  • skinit :SKINIT/STGI命令
  • wdt :ウォッチドッグタイマー
  • lwp :軽量プロファイリング
  • fma4 :4オペランドMAC命令
  • tce :変換キャッシュ拡張
  • nodeid_msr :NodeId MSR
  • tbm :トレーリングビット操作
  • topoext :トポロジ拡張CPUIDリーフ
  • perfctr_core :コアパフォーマンスカウンター拡張機能
  • perfctr_nb :NBパフォーマンスカウンター拡張機能
  • bpext :データブレークポイント拡張
  • ptsc :パフォーマンスタイムスタンプカウンター
  • perfctr_l2 :L2パフォーマンスカウンター拡張
  • mwaitx MWAIT 拡張機能( MONITORX / MWAITX

補助フラグ:Linux定義–さまざまなCPUIDレベルに散在する機能用

  • ring3mwait :リング3 MONITOR / MWAIT
  • cpuid_fault :IntelCPUID障害
  • cpb :AMDコアパフォーマンスブースト
  • epb :IA32_ENERGY_PERF_BIASサポート
  • cat_l3 :キャッシュ割り当てテクノロジーL3
  • cat_l2 :キャッシュ割り当てテクノロジーL2
  • cdp_l3 :コードとデータの優先順位付けL3
  • invpcid_single :事実上 invpcid およびCR4.PCIDE=1
  • hw_pstate :AMD HW-PState
  • proc_feedback :AMD ProcFeedbackInterface
  • sme :AMDセキュアメモリ暗号化
  • pti :カーネルページテーブルの分離(Kaiser)
  • retpoline :スペクターバリアント2(間接分岐)のレトポリン緩和
  • retpoline_amd :AMDレトポリンの緩和
  • intel_ppin :インテルプロセッサーの在庫番号
  • avx512_4vnniw :AVX-512ニューラルネットワークの説明
  • avx512_4fmaps :AVX-512積和単精度
  • mba :メモリ帯域幅の割り当て
  • rsb_ctxsw :コンテキストスイッチでRSBを埋める

仮想化フラグ:Linuxで定義

  • tpr_shadow :インテルTPRシャドウ
  • vnmi :インテル仮想NMI
  • flexpriority :Intel FlexPriority
  • ept :Intel拡張ページテーブル
  • vpid :インテル仮想プロセッサーID
  • vmmcall VMMCALLを優先する VMCALL

Intel定義のCPU機能、CPUIDレベル0x00000007:0(ebx)

  • fsgsbase :{RD / WR} {FS /GS}BASE命令
  • tsc_adjust :TSC調整MSR
  • bmi1 :第1グループビット操作拡張
  • hle :ハードウェアロックエリジオン
  • avx2 :AVX2命令
  • smep :スーパーバイザーモード実行保護
  • bmi2 :2番目のグループのビット操作拡張機能
  • erms :拡張REP MOVSB / STOSB
  • invpcid :プロセッサコンテキストIDを無効にする
  • rtm :制限されたトランザクションメモリ
  • cqm :キャッシュQoSモニタリング
  • mpx :メモリ保護拡張機能
  • rdt_a :リソースディレクターのテクノロジー割り当て
  • avx512f :AVX-512ファンデーション
  • avx512dq :AVX-512ダブル/クワッド命令
  • rdseed :RDSEED命令
  • adx :ADCXおよびADOX命令
  • smap :スーパーバイザーモードアクセス防止
  • clflushopt CLFLUSHOPT 指示
  • clwb CLWB 指示
  • intel_pt :Intelプロセッサトレース
  • avx512pf :AVX-512プリフェッチ
  • avx512er :AVX-512指数および逆数
  • avx512cd :AVX-512競合の検出
  • sha_ni :SHA1/SHA256命令拡張
  • avx512bw :AVX-512バイト/ワード命令
  • avx512vl :AVX-512128/256ベクトル長の拡張

拡張状態機能、CPUIDレベル0x0000000d:1(eax)

  • xsaveopt :最適化された XSAVE
  • xsavec XSAVEC
  • xgetbv1 XGETBV ECX=1の場合
  • xsaves XSAVES / XRSTORS

Intel定義のCPUQoSサブリーフ、CPUIDレベル0x0000000F:0(edx)

  • cqm_llc :LLC QoS

Intel定義のCPUQoSサブリーフ、CPUIDレベル0x0000000F:1(edx)

  • cqm_occup_llc :LLC占有監視
  • cqm_mbm_total :LLC合計MBMモニタリング
  • cqm_mbm_local :LLCローカルMBMモニタリング

AMDで定義されたCPU機能、CPUIDレベル0x80000008(ebx)

  • clzero CLZERO 指示
  • irperf :指示はパフォーマンスカウンターを廃止しました
  • xsaveerptr :常にFPエラーポインタを保存/復元します

熱および電力管理リーフ、CPUIDレベル0x00000006(eax)

  • dtherm (以前の dts ):デジタル熱センサー
  • ida :インテルダイナミックアクセラレーション
  • arat :APICタイマーを常に実行している
  • pln :インテルの電力制限通知
  • pts :インテルパッケージのサーマルステータス
  • hwp :インテルハードウェアPステート
  • hwp_notify :HWP通知
  • hwp_act_window :HWPアクティビティウィンドウ
  • hwp_epp :HWPエネルギーパフォーマンスの好み
  • hwp_pkg_req :HWPパッケージレベルのリクエスト

AMD SVM機能識別、CPUIDレベル0x8000000a(edx)

  • npt :AMDネストページテーブルのサポート
  • lbrv :AMDLBR仮想化サポート
  • svm_lock :AMDSVMロックMSR
  • nrip_save :AMDSVMnext_rip保存
  • tsc_scale :AMDTSCスケーリングのサポート
  • vmcb_clean :AMDVMCBクリーンビットのサポート
  • flushbyasid :AMDフラッシュバイASIDサポート
  • デコードアシスト :AMDDecodeAssistsのサポート
  • pausefilter :AMDフィルター処理された一時停止インターセプト
  • pfthreshold :AMD一時停止フィルターのしきい値
  • avic :仮想割り込みコントローラー
  • vmsave_vmload :仮想VMSAVE VMLOAD
  • vgif :仮想GIF
関連:Linux –ゲストの追加「プログラムを見つけることができません」Kali Linux 2.0?

Intel定義のCPU機能、CPUIDレベル0x00000007:0(ecx)

  • avx512vbmi :AVX512ベクトルビット操作手順
  • umip :ユーザーモード命令保護
  • pku :ユーザースペースの保護キー
  • ospke :OS保護キーを有効にする
  • avx512_vbmi2 :追加のAVX512ベクトルビット操作手順
  • gfni :ガロア体の新しい指示
  • vaes :ベクターAES
  • vpclmulqdq :キャリーレス乗算ダブルクワッドワード
  • avx512_vnni :ベクトルニューラルネットワーク命令
  • avx512_bitalg :VPOPCNT [B、W]およびVPSHUF-BITQMB命令
  • avx512_vpopcntdq :DW/QWのベクトル用のPOPCNT
  • la57 :5レベルのページテーブル
  • rdpid :RDPID命令

AMD定義のCPU機能、CPUIDレベル0x80000007(ebx)

  • overlay_recov :MCAオーバーフローリカバリのサポート
  • succor :修正不可能なエラーの封じ込めと回復
  • smca :スケーラブルなMCA

検出されたCPUバグ(Linux定義)

  • f00f :Intel F00F
  • fdiv :CPU FDIV
  • コマ :サイリックス6×86コマ
  • 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、MONITORの前にCLFLUSHが必要です
  • sysret_ss_attrs :SYSRETはSS属性を修正しません
  • espfix :「」IRETを16ビットSSにすると、ESP/RSP上位ビットが破損します
  • null_seg :セレクターをヌルにすると、ベースが保持されます
  • swapgs_fence :GSの入力深さのないSWAPGS
  • モニター :リモートCPUをウェイクアップするために必要なIPI
  • amd_e400 :CPUはErratum400の影響を受けます
  • cpu_meltdown :CPUはメルトダウン攻撃の影響を受け、カーネルページテーブルの分離が必要です
  • spectre_v1 :CPUは、条件付きブランチを使用したSpectreバリアント1攻撃の影響を受けます
  • spectre_v2 :CPUは、間接分岐を使用したSpectreバリアント2攻撃の影響を受けます
  • spec_store_bypass :CPUは、Speculative Store Bypassの脆弱性(Spectreバリアント4)の影響を受けます。

P.S.
このリストは、 arch / x86 / include / asm / cpufeatures.hから派生したものです。 カーネルソースで。フラグはソースコードと同じ順序でリストされています。欠落している機能の説明へのリンクを追加したり、表現できない名前の機能の簡単な説明を書き込んだり、新しいカーネルバージョンのリストを更新したりしてください。現在のリストはLinux4.15からのものであり、その後いくつか追加されています。


Linux
  1. Linux/procファイルシステムの調査

  2. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  3. コマンドCat/proc / cpuinfoを実行するとどうなりますか?

  1. Linux – / proc/mntを/proc/ mountsにリンクしますか?

  2. Linux – / proc / cpuinfo内のプロセッサの数?

  3. Linux – / dev / urandomで「u」という文字は何を意味しますか?

  1. /proc/[pid]/pagemaps および /proc/[pid]/maps | Linux

  2. コマンドラインから Linux の CPU/コア数を取得する方法は?

  3. Linuxカーネルコードで__initはどういう意味ですか?