GNU/Linux >> Znalost Linux >  >> Linux

Linux – Co znamenají příznaky v /proc/cpuinfo?

Jak zjistím, zda má můj procesor určitou funkci? (64bitová instrukční sada, hardwarově podporovaná virtualizace, kryptografické akcelerátory atd.) Vím, že soubor /proc/cpuinfo obsahuje tyto informace v flags řádek, ale co znamenají všechny tyto záhadné zkratky?

Například s ohledem na následující výpis z /proc/cpuinfo , mám 64bitový CPU? Mám hardwarovou virtualizaci?

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

Přijatá odpověď:

x86

(32bitová aka i386–i686 a 64bitová aka amd64. Jinými slovy, vaše pracovní stanice, notebook nebo server.)

Časté dotazy:Mám…

  • 64bitový (x86_64/AMD64/Intel64)? lm
  • Hardwarová virtualizace (VMX/AMD-V)? vmx (Intel), svm (AMD)
  • Accelerated AES (AES-NI)? aes
  • TXT (TPM)? smx
  • hypervizor (jako takový ohlašován)? hypervisor

Většina ostatních funkcí je zajímavá pouze pro autory kompilátoru nebo jádra.

Všechny příznaky

Úplný seznam je ve zdrojovém kódu jádra, v souboru arch/x86/include/asm/cpufeatures.h .

Funkce CPU definované Intel, CPUID úroveň 0x00000001 (edx)

Viz také Wikipedii a tabulku 2-27 v Intel Advanced Vector Extensions Programming Reference

  • fpu :Palubní FPU (podpora s pohyblivou řádovou čárkou)
  • vme :Vylepšení virtuálního režimu 8086
  • de :Debugging Extensions (CR4.DE)
  • pse :Rozšíření velikosti stránky (stránky paměti 4 MB)
  • tsc :Počítadlo časových razítek (RDTSC)
  • msr :Registry specifické pro model (RDMSR, WRMSR)
  • pae :Rozšíření fyzické adresy (podpora více než 4 GB paměti RAM)
  • mce :Výjimka kontroly stroje
  • cx8 :Instrukce CMPXCHG8 (64bitové porovnání a výměna)
  • apic :Integrovaný APIC
  • sep :SYSENTER/SYSEXIT
  • mtrr :Registry rozsahu typu paměti
  • pge :Page Global Enable (globální bit v PDE a PTE)
  • mca :Machine Check Architecture
  • cmov :Instrukce CMOV (podmíněný pohyb) (také FCMOV)
  • pat :Tabulka atributů stránky
  • pse36 :36bitové PSE (obrovské stránky)
  • pn :Sériové číslo procesoru
  • clflush :Instrukce pro vyprázdnění řádku mezipaměti
  • dts :Debug Store (vyrovnávací paměť pro pokyny k ladění a profilování)
  • acpi :ACPI přes MSR (monitorování teploty a modulace taktu)
  • mmx :Multimediální rozšíření
  • fxsr :FXSAVE/FXRSTOR, CR4.OSFXSR
  • sse :Vektorové instrukce Intel SSE
  • sse2 :SSE2
  • ss :Vlastní slídění procesoru
  • ht :Hyper-Threading a/nebo vícejádrový
  • tm :Automatické řízení hodin (Thermal Monitor)
  • ia64 :Intel Itanium Architecture 64-bit (nezaměňovat s 64-bit x86 architekturou Intel s příznakem x86-64 nebo bit „AMD64“ označený příznakem lm )
  • pbe :Pending Break Enable (PBE# pin) podpora probuzení

Funkce CPU definované AMD, CPUID úroveň 0x80000001

Viz také Wikipedii a tabulku 2-23 v Intel Advanced Vector Extensions Programming Reference

  • syscall :SYSCALL (rychlé systémové volání) a SYSRET (návrat z rychlého systémového volání)
  • mp :Možnost vícenásobného zpracování.
  • nx :Execute Disable
  • mmxext :Rozšíření AMD MMX
  • fxsr_opt :Optimalizace FXSAVE/FXRSTOR
  • pdpe1gb :Jeden GB stránek (umožňuje hugepagesz=1G )
  • rdtscp :Čtení počítadla časových razítek a ID procesoru
  • lm :Dlouhý režim (x86-64:amd64, také známý jako Intel 64, tj. s podporou 64bitů)
  • 3dnowext :AMD 3DNow! rozšíření
  • 3dnow :3DNy! (Vektorové instrukce AMD, konkurující Intel SSE1)

Funkce CPU definované transmeta, CPUID úroveň 0x80860001

  • recovery :CPU v režimu obnovy
  • longrun :Longrun power control
  • lrti :Rozhraní tabulky LongRun

Další funkce, mapování definované systémem Linux

  • cxmmx :Rozšíření Cyrix MMX
  • k6_mtrr :AMD K6 nestandardní MTRR
  • cyrix_arr :Cyrix ARR (=MTRR)
  • centaur_mcr :Centaur MCR (=MTRR)
  • constant_tsc :TSC tiká konstantní rychlostí
  • up :SMP jádro běžící na UP
  • art :Vždy běžící časovač
  • arch_perfmon :Intel Architectural PerfMon
  • pebs :Přesné vzorkování založené na událostech
  • bts :Obchod se sledováním poboček
  • rep_good :Mikrokód zástupce funguje dobře
  • acc_power :Mechanismus akumulovaného výkonu AMD
  • nopl :Pokyny NOPL (0F 1F)
  • xtopology :rozšíření výčtu topologie cpu
  • tsc_reliable :TSC je známo, že je spolehlivé
  • nonstop_tsc :TSC se nezastaví ve stavech C
  • cpuid :CPU má samotnou instrukci CPUID
  • extd_apicid :má rozšířené APICID (8 bitů)
  • amd_dcm :víceuzlový procesor
  • aperfmperf :APERFMPERF
  • eagerfpu :Nelíná obnova FPU
  • nonstop_tsc_s3 :TSC se ve stavu S3 nezastaví
  • tsc_known_freq :TSC má známou frekvenci
  • mce_recovery :CPU má obnovitelné kontroly počítače

Funkce CPU definované Intel, CPUID úroveň 0x00000001 (ecx)

Viz také Wikipedii a tabulku 2-26 v Intel Advanced Vector Extensions Programming Reference

  • pni :SSE-3 („Nové pokyny společnosti Prescott“)
  • pclmulqdq :Proveďte Carry-Less Multiplication of Quadword instrukce — akcelerátor pro GCM)
  • dtes64 :64bitový obchod pro ladění
  • monitor :Podpora Monitor/Mwait (doplňky Intel SSE3)
  • ds_cpl :CPL Kval. Debug Store
  • vmx :Hardwarová virtualizace:Intel VMX
  • smx :Bezpečnější režim:TXT (podpora TPM)
  • est :Vylepšený SpeedStep
  • tm2 :Thermal Monitor 2
  • ssse3 :Doplňkový SSE-3
  • cid :ID kontextu
  • sdbg :křemíkové ladění
  • fma :Fused multiply-add
  • cx16 :CMPXCHG16B
  • xtpr :Odesílání prioritních zpráv
  • pdcm :Výkonnostní schopnosti
  • pcid :Identifikátory kontextu procesu
  • dca :Přímý přístup do mezipaměti
  • sse4_1 :SSE-4.1
  • sse4_2 :SSE-4.2
  • x2apic :x2APIC
  • movbe :Instrukce Přesunout data po výměně bajtů
  • popcnt :Vraťte instrukci Count of Number of Bits Set na 1 (Hammingova váha, tj. počet bitů)
  • tsc_deadline_timer :Časovač uzávěrky Tsc
  • aes /aes-ni :Advanced Encryption Standard (nové pokyny)
  • xsave :Save Processor Extended States:poskytuje také XGETBY,XRSTOR,XSETBY
  • avx :Advanced Vector Extensions
  • f16c :16bitové konverze fp (CVT16)
  • rdrand :Přečtěte si náhodné číslo z instrukce hardwarového generátoru náhodných čísel
  • hypervisor :Běží na hypervizor
Související:Linux – Zakázat Unplugged Displays (xrandr)?

Funkce CPU definované VIA/Cyrix/Centaur, CPUID úroveň 0xC0000001

  • rng :Přítomen generátor náhodných čísel (xstore)
  • rng_en :Generátor náhodných čísel povolen
  • ace :kryptoměna na CPU (xcrypt)
  • ace_en :šifrování na CPU povoleno
  • ace2 :Advanced Cryptography Engine v2
  • ace2_en :ACE v2 povoleno
  • phe :PadLock Hash Engine
  • phe_en :PHE povoleno
  • pmm :Multiplikátor PadLock Montgomery
  • pmm_en :PMM povoleno

Další rozšířené příznaky AMD:CPUID úroveň 0x80000001, ecx

  • lahf_lm :Načtení AH z příznaků (LAHF) a uložení AH do příznaků (SAHF) v dlouhém režimu
  • cmp_legacy :Pokud ano, HyperThreading není platný
  • svm :„Zabezpečený virtuální počítač“:AMD-V
  • extapic :Rozšířený prostor APIC
  • cr8_legacy :CR8 v 32bitovém režimu
  • abm :Pokročilá bitová manipulace
  • sse4a :SSE-4A
  • misalignsse :označuje, zda je generována výjimka obecné ochrany (#GP), když některé starší instrukce SSE pracují s nezarovnanými daty. Závisí také na CR0 a bitu kontroly zarovnání
  • 3dnowprefetch :3DNyní pokyny k předběžnému načtení
  • osvw :označuje OS Visible Workaround, které umožňuje OS obejít chyby procesoru.
  • ibs :Vzorkování na základě instrukcí
  • xop :rozšířené instrukce AVX
  • skinit :Návod SKINIT/STGI
  • wdt :Časovač hlídacího psa
  • lwp :Lehká profilace
  • fma4 :4 operandy MAC instrukce
  • tce :rozšíření mezipaměti překladu
  • nodeid_msr :NodeId MSR
  • tbm :Manipulace s koncovým bitem
  • topoext :Topology Extensions CPUID listy
  • perfctr_core :Rozšíření Core Performance Counter
  • perfctr_nb :Rozšíření NB Performance Counter
  • bpext :rozšíření data breakpoint
  • ptsc :čítač časových razítek výkonu
  • perfctr_l2 :L2 Performance Counter Extensions
  • mwaitx :MWAIT rozšíření (MONITORX /MWAITX )

Pomocné příznaky:Definováno Linuxem – Pro funkce rozptýlené na různých úrovních CPUID

  • ring3mwait :Ring 3 MONITOR/MWAIT
  • cpuid_fault :Chyba CPUID Intel
  • cpb :AMD Core Performance Boost
  • epb :Podpora IA32_ENERGY_PERF_BIAS
  • cat_l3 :Technologie přidělování mezipaměti L3
  • cat_l2 :Technologie přidělování mezipaměti L2
  • cdp_l3 :Priorita kódu a dat L3
  • invpcid_single :efektivně invpcid a CR4.PCIDE=1
  • hw_pstate :AMD HW-PSte
  • proc_feedback :AMD ProcFeedbackInterface
  • sme :AMD Secure Memory Encryption
  • pti :Izolace tabulky stránek jádra (Kaiser)
  • retpoline :Retpoline zmírnění pro Spectre variantu 2 (nepřímé větve)
  • retpoline_amd :AMD Retpoline zmírnění
  • intel_ppin :Inventární číslo procesoru Intel
  • avx512_4vnniw :Pokyny pro neuronovou síť AVX-512
  • avx512_4fmaps :AVX-512 Multiply Accumulation Jednoduchá přesnost
  • mba :Přidělení šířky pásma paměti
  • rsb_ctxsw :Vyplňte RSB na kontextových přepínačích

Příznaky virtualizace:Definováno Linuxem

  • tpr_shadow :Intel TPR Shadow
  • vnmi :Intel Virtual NMI
  • flexpriority :Intel FlexPriority
  • ept :Intel Extended Page Table
  • vpid :ID virtuálního procesoru Intel
  • vmmcall :preferujte VMMCALL na VMCALL

Funkce CPU definované Intel, CPUID úroveň 0x00000007:0 (ebx)

  • fsgsbase :{RD/WR}{FS/GS}pokyny BASE
  • tsc_adjust :TSC úprava MSR
  • bmi1 :Rozšíření pro manipulaci s bity 1. skupiny
  • hle :Hardware Lock Elision
  • avx2 :Pokyny AVX2
  • smep :Ochrana před spuštěním režimu dozoru
  • bmi2 :Rozšíření pro manipulaci s bity 2. skupiny
  • erms :Vylepšené REP MOVSB/STOSB
  • invpcid :Zneplatnění ID kontextu procesoru
  • rtm :Omezená transakční paměť
  • cqm :Monitorování QoS mezipaměti
  • mpx :Rozšíření ochrany paměti
  • rdt_a :Resource Director Technology Allocation
  • avx512f :základ AVX-512
  • avx512dq :Pokyny AVX-512 Double/Quad
  • rdseed :Instrukce RDSEED
  • adx :Pokyny pro ADCX a ADOX
  • smap :Prevence přístupu v režimu dozoru
  • clflushopt :CLFLUSHOPT instrukce
  • clwb :CLWB instrukce
  • intel_pt :Intel Processor Tracing
  • avx512pf :AVX-512 Prefetch
  • avx512er :AVX-512 exponenciální a reciproční
  • avx512cd :AVX-512 Detekce konfliktů
  • sha_ni :Rozšíření instrukcí SHA1/SHA256
  • avx512bw :Pokyny AVX-512 Byte/Word
  • avx512vl :AVX-512 128/256 Vector Length prodloužení

Funkce rozšířeného stavu, CPUID úroveň 0x0000000d:1 (eax)

  • xsaveopt :Optimalizováno XSAVE
  • xsavec :XSAVEC
  • xgetbv1 :XGETBV s ECX =1
  • xsaves :XSAVES /XRSTORS

Podlist CPU QoS definovaný Intel, CPUID úroveň 0x0000000F:0 (edx)

  • cqm_llc :LLC QoS

Podlist CPU QoS definovaný Intel, CPUID úroveň 0x0000000F:1 (edx)

  • cqm_occup_llc :LLC monitorování obsazenosti
  • cqm_mbm_total :Celkové monitorování MBM LLC
  • cqm_mbm_local :Lokální monitorování MBM LLC

Funkce CPU definované AMD, CPUID úroveň 0x80000008 (ebx)

  • clzero :CLZERO instrukce
  • irperf :instrukce vyřazeny z počítadla výkonu
  • xsaveerptr :Vždy ukládat/obnovovat ukazatele chyb FP

List řízení teploty a napájení, CPUID úroveň 0x00000006 (eax)

  • dtherm (dříve dts ):digitální teplotní senzor
  • ida :Intel Dynamic Acceleration
  • arat :Vždy spuštěný časovač APIC
  • pln :Upozornění Intel Power Limit
  • pts :Tepelný stav balíčku Intel
  • hwp :Intel Hardware P-states
  • hwp_notify :HWP upozornění
  • hwp_act_window :Okno aktivity HWP
  • hwp_epp :Preference energetického výkonu HWP
  • hwp_pkg_req :Požadavek na úrovni balíčku HWP

Identifikace funkce AMD SVM, CPUID úroveň 0x8000000a (edx)

  • npt :Podpora AMD Nested Page Table
  • lbrv :Podpora virtualizace AMD LBR
  • svm_lock :AMD SVM locking MSR
  • nrip_save :AMD SVM next_rip save
  • tsc_scale :Podpora škálování AMD TSC
  • vmcb_clean :Podpora čistých bitů AMD VMCB
  • flushbyasid :Podpora AMD flush-by-ASID
  • decodeassists :Podpora AMD Decode Assists
  • pausefilter :AMD filtrované pozastavení intercept
  • pfthreshold :Práh filtru pozastavení AMD
  • avic :Virtuální řadič přerušení
  • vmsave_vmload :Virtuální VMSAVE VMLOAD
  • vgif :Virtuální GIF
Související:Linux – Přídavky pro hosty „nelze najít program“ Kali Linux 2.0?

Funkce CPU definované Intel, CPUID úroveň 0x00000007:0 (ecx)

  • avx512vbmi :AVX512 Vector Bit Manipulation Pokyny
  • umip :Ochrana instrukcí uživatelského režimu
  • pku :Ochranné klíče pro uživatelský prostor
  • ospke :Povolit klíče ochrany OS
  • avx512_vbmi2 :Další pokyny pro manipulaci s bity AVX512 Vector
  • gfni :Galois Field Nové instrukce
  • vaes :Vector AES
  • vpclmulqdq :Carry-Less Multiplication Double Quadword
  • avx512_vnni :Instrukce vektorové neuronové sítě
  • avx512_bitalg :Pokyny VPOPCNT[B,W] a VPSHUF-BITQMB
  • avx512_vpopcntdq :POPCNT pro vektory DW/QW
  • la57 :5úrovňové tabulky stránek
  • rdpid :instrukce RDPID

Funkce CPU definované AMD, CPUID úroveň 0x80000007 (ebx)

  • overflow_recov :Podpora obnovy přetečení MCA
  • succor :omezení a obnovení neopravitelných chyb
  • smca :Škálovatelný MCA

Zjištěné chyby CPU (definované Linuxem)

  • f00f :Intel F00F
  • fdiv :CPU FDIV
  • coma :Cyrix 6×86 kóma
  • amd_tlb_mmatch :tlb_mmatch AMD Erratum 383
  • amd_apic_c1e :apic_c1e AMD Erratum 400
  • 11ap :Špatné místní APIC aka 11AP
  • fxsave_leak :FXSAVE uniká FOP/FIP/FOP
  • clflush_monitor :AAI65, před MONITOREM je vyžadován CLFLUSH
  • sysret_ss_attrs :SYSRET neopravuje SS attrs
  • espfix :„“ IRET na 16bitové SS narušuje vysoké bity ESP/RSP
  • null_seg :Vynulováním selektoru se zachová základ
  • swapgs_fence :SWAPGS bez vstupního dep na GS
  • monitor :IPI vyžaduje probuzení vzdáleného CPU
  • amd_e400 :CPU je mezi postiženými Erratum 400
  • cpu_meltdown :CPU je ovlivněno útokem meltdown a potřebuje izolaci tabulky stránek jádra
  • spectre_v1 :CPU je ovlivněno útokem Spectre varianta 1 s podmíněnými větvemi
  • spectre_v2 :CPU je ovlivněno útokem Spectre varianta 2 s nepřímými větvemi
  • spec_store_bypass :CPU je ovlivněno zranitelností Spekulativního obcházení obchodu (varianta 4 Spectre).

P.S.
Tento zápis byl odvozen z arch/x86/include/asm/cpufeatures.h ve zdrojovém kódu jádra. Příznaky jsou uvedeny ve stejném pořadí jako zdrojový kód. Pomozte prosím přidáním odkazů na popisy funkcí, když chybí, napsáním krátkého popisu funkcí, které mají nevýrazné názvy, a aktualizací seznamu pro nové verze jádra. Aktuální seznam je z Linuxu 4.15 plus některé pozdější doplňky.


Linux
  1. Co v linuxu znamenají všechny hodnoty v příkazu top?

  2. Jak získám cestu k procesu v Unixu / Linuxu

  3. Co znamená __init v kódu jádra Linuxu?

  1. Co znamená &na konci linuxového příkazu?

  2. Co znamená název rozhraní eth0 v Linuxu?

  3. Co znamená přípona .d v Linuxu?

  1. Prozkoumání souborového systému Linux /proc

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Co se stane, když spustím příkaz Cat /proc/cpuinfo?