GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:cosa significano i flag in /proc/cpuinfo?

Come posso sapere se il mio processore ha una caratteristica particolare? (set di istruzioni a 64 bit, virtualizzazione assistita da hardware, acceleratori crittografici, ecc.) So che il file /proc/cpuinfo contiene queste informazioni, nei flags linea, ma cosa significano tutte queste criptiche abbreviazioni?

Ad esempio, dato il seguente estratto da /proc/cpuinfo , ho una CPU a 64 bit? Ho la virtualizzazione hardware?

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

Risposta accettata:

x86

(32 bit alias i386–i686 e 64 bit alias amd64. In altre parole, la tua workstation, laptop o server.)

Domande frequenti:Ho...

  • 64 bit (x86_64/AMD64/Intel64)? lm
  • Virtualizzazione hardware (VMX/AMD-V)? vmx (Intel), svm (AMD)
  • AES accelerato (AES-NI)? aes
  • TXT (TPM)? smx
  • un hypervisor (annunciato come tale)? hypervisor

La maggior parte delle altre funzionalità interessano solo gli autori di compilatori o kernel.

Tutte le bandiere

L'elenco completo è nel sorgente del kernel, nel file arch/x86/include/asm/cpufeatures.h .

Caratteristiche CPU definite da Intel, livello CPUID 0x00000001 (edx)

Vedere anche Wikipedia e la tabella 2-27 in Intel Advanced Vector Extensions Programming Reference

  • fpu :FPU integrato (supporto virgola mobile)
  • vme :Miglioramenti alla modalità 8086 virtuale
  • de :Estensioni di debug (CR4.DE)
  • pse :Estensioni del formato pagina (pagine di memoria da 4 MB)
  • tsc :contatore timestamp (RDTSC)
  • msr :Registri specifici del modello (RDMSR, WRMSR)
  • pae :Estensioni dell'indirizzo fisico (supporto per più di 4 GB di RAM)
  • mce :Eccezione controllo macchina
  • cx8 :Istruzione CMPXCHG8 (confronto e scambio a 64 bit)
  • apic :a bordo dell'APIC
  • sep :SYSENTER/SYSEXIT
  • mtrr :Registri dell'intervallo del tipo di memoria
  • pge :Pagina Global Enable (bit globale in PDE e PTE)
  • mca :Architettura di controllo macchina
  • cmov :Istruzioni CMOV (movimento condizionale) (anche FCMOV)
  • pat :Tabella degli attributi di pagina
  • pse36 :PSE a 36 bit (pagine enormi)
  • pn :Numero di serie del processore
  • clflush :Istruzione di svuotamento della linea della cache
  • dts :Debug Store (buffer per le istruzioni di debug e profilazione)
  • acpi :ACPI tramite MSR (monitoraggio della temperatura e modulazione della velocità di clock)
  • mmx :Estensioni multimediali
  • fxsr :FXSAVE/FXRSTOR, CR4.OSFXSR
  • sse :Istruzioni vettoriali Intel SSE
  • sse2 :SSE2
  • ss :Snoop automatico della CPU
  • ht :Hyper-Threading e/o multi-core
  • tm :Controllo automatico dell'orologio (monitor termico)
  • ia64 :Architettura Intel Itanium a 64 bit (da non confondere con l'architettura Intel x86 a 64 bit con flag x86-64 o bit “AMD64” indicato dal flag lm )
  • pbe :Supporto per l'attivazione dell'interruzione in sospeso (PBE# pin)

Caratteristiche CPU definite da AMD, livello CPUID 0x80000001

Vedere anche Wikipedia e la tabella 2-23 in Intel Advanced Vector Extensions Programming Reference

  • syscall :SYSCALL (Chiamata rapida di sistema) e SYSRET (Ritorno da chiamata rapida di sistema)
  • mp :Capacità di elaborazione multipla.
  • nx :Esegui Disattiva
  • mmxext :Estensioni AMD MMX
  • fxsr_opt :Ottimizzazioni FXSAVE/FXRSTOR
  • pdpe1gb :pagine da un GB (consente hugepagesz=1G )
  • rdtscp :Leggi contatore timestamp e ID processore
  • lm :Modalità lunga (x86-64:amd64, noto anche come Intel 64, ovvero compatibile a 64 bit)
  • 3dnowext :AMD 3DNow! estensioni
  • 3dnow :3D Now! (Istruzioni vettoriali AMD, in competizione con SSE1 di Intel)

Caratteristiche della CPU transmeta-definite, livello CPUID 0x80860001

  • recovery :CPU in modalità di ripristino
  • longrun :Controllo della potenza a lungo termine
  • lrti :interfaccia tabella LongRun

Altre funzionalità, mappatura definita da Linux

  • cxmmx :estensioni Cyrix MMX
  • k6_mtrr :MTRR non standard AMD K6
  • cyrix_arr :Cyrix ARR (=MTRR)
  • centaur_mcr :Centaur MCR (=MTRR)
  • constant_tsc :TSC ticchetta a una velocità costante
  • up :kernel SMP in esecuzione su UP
  • art :timer sempre attivo
  • arch_perfmon :Intel Architectural PerfMon
  • pebs :Campionamento basato su eventi precisi
  • bts :Negozio di tracciabilità delle filiali
  • rep_good :il microcodice rep funziona bene
  • acc_power :meccanismo di alimentazione accumulata AMD
  • nopl :Le istruzioni NOPL (0F 1F)
  • xtopology :estensioni enum topologia CPU
  • tsc_reliable :TSC è noto per essere affidabile
  • nonstop_tsc :TSC non si ferma negli stati C
  • cpuid :la CPU ha l'istruzione CPUID stessa
  • extd_apicid :ha esteso APICID (8 bit)
  • amd_dcm :processore multinodo
  • aperfmperf :APERFPERF
  • eagerfpu :Ripristino FPU non pigro
  • nonstop_tsc_s3 :TSC non si ferma nello stato S3
  • tsc_known_freq :TSC ha una frequenza nota
  • mce_recovery :la CPU ha controlli macchina recuperabili

Caratteristiche CPU definite da Intel, livello CPUID 0x00000001 (ecx)

Vedere anche Wikipedia e la tabella 2-26 in Intel Advanced Vector Extensions Programming Reference

  • pni :SSE-3 ("Nuove istruzioni Prescott")
  • pclmulqdq :eseguire una moltiplicazione Carry-Less dell'istruzione Quadword — acceleratore per GCM)
  • dtes64 :archivio di debug a 64 bit
  • monitor :Supporto Monitor/Mwait (supplementi Intel SSE3)
  • ds_cpl :Qual. CPL Negozio di debug
  • vmx :Virtualizzazione hardware:Intel VMX
  • smx :Modalità più sicura:TXT (supporto TPM)
  • est :SpeedStep avanzato
  • tm2 :Monitor termico 2
  • ssse3 :Supplementare SSE-3
  • cid :ID contesto
  • sdbg :debug del silicio
  • fma :Moltiplica-addizione fusa
  • cx16 :CMPXCHG16B
  • xtpr :invia messaggi con priorità attività
  • pdcm :Capacità prestazionali
  • pcid :identificatori di contesto del processo
  • dca :Accesso diretto alla cache
  • sse4_1 :SSE-4.1
  • sse4_2 :SSE-4.2
  • x2apic :x2APIC
  • movbe :Sposta i dati dopo aver scambiato i byte istruzione
  • popcnt :Restituisce il conteggio del numero di bit impostato su 1 istruzione (peso Hamming, ovvero conteggio bit)
  • tsc_deadline_timer :Timer scadenza Tsc
  • aes /aes-ni :Standard di crittografia avanzato (nuove istruzioni)
  • xsave :Save Processor Extended States:fornisce anche XGETBY, XRSTOR, XSETBY
  • avx :Estensioni vettoriali avanzate
  • f16c :conversioni fps a 16 bit (CVT16)
  • rdrand :Leggi il numero casuale dall'istruzione del generatore di numeri casuali hardware
  • hypervisor :in esecuzione su un hypervisor
Correlati:Linux – Disabilita i display non collegati (xrandr)?

Caratteristiche CPU definite da VIA/Cyrix/Centaur, livello CPUID 0xC0000001

  • rng :Generatore di numeri casuali presente (xstore)
  • rng_en :Generatore di numeri casuali abilitato
  • ace :crittografia su CPU (xcrypt)
  • ace_en :crittografia su CPU abilitata
  • ace2 :Motore di crittografia avanzato v2
  • ace2_en :ACE v2 abilitato
  • phe :Motore hash PadLock
  • phe_en :PHE abilitato
  • pmm :Moltiplicatore Montgomery del lucchetto
  • pmm_en :PMM abilitato

Flag AMD più estesi:livello CPUID 0x80000001, ecc

  • lahf_lm :Carica AH da Flags (LAHF) e Memorizza AH in Flags (SAHF) in modalità lunga
  • cmp_legacy :Se sì HyperThreading non è valido
  • svm :"Macchina virtuale sicura":AMD-V
  • extapic :Spazio APIC esteso
  • cr8_legacy :CR8 in modalità a 32 bit
  • abm :Manipolazione avanzata dei bit
  • sse4a :SSE-4A
  • misalignsse :indica se viene generata un'eccezione di protezione generale (#GP) quando alcune istruzioni SSE legacy operano su dati non allineati. Dipende anche da CR0 e dal bit di controllo allineamento
  • 3dnowprefetch :Istruzioni per il precaricamento di 3DNow
  • osvw :indica OS Visible Workaround, che consente al sistema operativo di aggirare l'errata del processore.
  • ibs :Campionamento basato sulle istruzioni
  • xop :istruzioni AVX estese
  • skinit :Istruzioni SKINIT/STGI
  • wdt :timer watchdog
  • lwp :Profilatura leggera
  • fma4 :4 operandi istruzioni MAC
  • tce :estensione della cache di traduzione
  • nodeid_msr :NodeId MSR
  • tbm :Manipolazione del bit finale
  • topoext :Estensioni della topologia Foglie CPUID
  • perfctr_core :Estensioni del contatore delle prestazioni principali
  • perfctr_nb :NB Estensioni del contatore di performance
  • bpext :estensione del punto di interruzione dei dati
  • ptsc :contatore del timestamp delle prestazioni
  • perfctr_l2 :Estensioni del contatore delle prestazioni L2
  • mwaitx :MWAIT estensione (MONITORX /MWAITX )

Flag ausiliari:Linux definito – Per funzionalità sparse in vari livelli CPUID

  • ring3mwait :Suoneria 3 MONITOR/MWAIT
  • cpuid_fault :Intel CPUID guasto
  • cpb :incremento delle prestazioni AMD Core
  • epb :supporto IA32_ENERGY_PERF_BIAS
  • cat_l3 :Tecnologia di allocazione della cache L3
  • cat_l2 :Tecnologia di allocazione cache L2
  • cdp_l3 :Priorità del codice e dei dati L3
  • invpcid_single :effettivamente invpcid e CR4.PCIDE=1
  • hw_pstate :AMD HW-PSate
  • proc_feedback :Interfaccia AMD ProcFeedback
  • sme :Crittografia sicura della memoria AMD
  • pti :Isolamento della tabella delle pagine del kernel (Kaiser)
  • retpoline :Mitigazione del reticolo per la variante Spectre 2 (rami indiretti)
  • retpoline_amd :Mitigazione AMD Retpoline
  • intel_ppin :Numero di inventario del processore Intel
  • avx512_4vnniw :Istruzioni per la rete neurale AVX-512
  • avx512_4fmaps :AVX-512 Accumulazione multipla Precisione singola
  • mba :Allocazione della larghezza di banda della memoria
  • rsb_ctxsw :Riempi RSB sui cambi di contesto

Flag di virtualizzazione:Linux definito

  • tpr_shadow :Intel TPR Shadow
  • vnmi :Intel Virtual NMI
  • flexpriority :Intel FlexPriority
  • ept :Tabella delle pagine estesa Intel
  • vpid :ID processore virtuale Intel
  • vmmcall :preferisci VMMCALL a VMCALL

Caratteristiche CPU definite da Intel, livello CPUID 0x00000007:0 (ebx)

  • fsgsbase :{RD/WR}{FS/GS}Istruzioni BASE
  • tsc_adjust :MSR di regolazione TSC
  • bmi1 :Estensioni per la manipolazione dei bit del 1° gruppo
  • hle :Eliminazione del blocco hardware
  • avx2 :Istruzioni AVX2
  • smep :Protezione esecuzione modalità supervisore
  • bmi2 :estensioni per la manipolazione dei bit del 2° gruppo
  • erms :REP MOVSB/STOSB migliorato
  • invpcid :invalida l'ID contesto del processore
  • rtm :Memoria transazionale limitata
  • cqm :Monitoraggio della QoS della cache
  • mpx :Estensione per la protezione della memoria
  • rdt_a :Allocazione della tecnologia del direttore delle risorse
  • avx512f :Fondazione AVX-512
  • avx512dq :AVX-512 Istruzioni doppio/quadruplo
  • rdseed :L'istruzione RDSEED
  • adx :Le istruzioni ADCX e ADOX
  • smap :Prevenzione dell'accesso in modalità supervisore
  • clflushopt :CLFLUSHOPT istruzioni
  • clwb :CLWB istruzioni
  • intel_pt :Traccia del processore Intel
  • avx512pf :AVX-512 Precarica
  • avx512er :AVX-512 Esponenziale e Reciproco
  • avx512cd :Rilevamento di conflitti AVX-512
  • sha_ni :Estensioni delle istruzioni SHA1/SHA256
  • avx512bw :AVX-512 Istruzioni per byte/parola
  • avx512vl :AVX-512 128/256 Estensioni della lunghezza del vettore

Caratteristiche dello stato esteso, livello CPUID 0x0000000d:1 (eax)

  • xsaveopt :XSAVE ottimizzato
  • xsavec :XSAVEC
  • xgetbv1 :XGETBV con ECX =1
  • xsave :XSAVES /XRSTORS

Sub-leaf QoS CPU definito da Intel, livello CPUID 0x0000000F:0 (edx)

  • cqm_llc :LLC QoS

Sub-leaf QoS CPU definito da Intel, livello CPUID 0x0000000F:1 (edx)

  • cqm_occup_llc :monitoraggio dell'occupazione LLC
  • cqm_mbm_total :monitoraggio totale MBM LLC
  • cqm_mbm_local :monitoraggio MBM locale LLC

Caratteristiche CPU definite da AMD, livello CPUID 0x80000008 (ebx)

  • clzero :CLZERO istruzioni
  • irperf :istruzioni contatore delle prestazioni ritirato
  • xsaveerptr :salva/ripristina sempre i puntatori di errore FP

Foglia Thermal and Power Management, livello CPUID 0x00000006 (eax)

  • dtherm (precedentemente dts ):sensore termico digitale
  • ida :Accelerazione dinamica Intel
  • arat :Timer APIC sempre in esecuzione
  • pln :Notifica Intel Power Limit
  • pts :Stato termico del pacchetto Intel
  • hwp :stati P dell'hardware Intel
  • hwp_notify :Notifica HWP
  • hwp_act_window :Finestra attività HWP
  • hwp_epp :Preferenza di prestazione energetica HWP
  • hwp_pkg_req :richiesta a livello di pacchetto HWP

Identificazione funzione AMD SVM, livello CPUID 0x8000000a (edx)

  • npt :Supporto AMD Nested Page Table
  • lbrv :Supporto per la virtualizzazione AMD LBR
  • svm_lock :MSR di blocco AMD SVM
  • nrip_save :AMD SVM next_rip save
  • tsc_scale :Supporto per il ridimensionamento AMD TSC
  • vmcb_clean :Supporto per i bit puliti AMD VMCB
  • flushbyasid :supporto AMD flush-by-ASID
  • decodeassists :Supporto per AMD Decode Assist
  • pausefilter :Intercettazione pausa filtrata AMD
  • pfthreshold :Soglia del filtro di pausa AMD
  • avic :Controller di interrupt virtuale
  • vmsave_vmload :VMSAVE VMLOAD virtuale
  • vgif :GIF virtuale
Correlati:Linux – Aggiunte guest "impossibile individuare il programma" Kali Linux 2.0?

Caratteristiche CPU definite da Intel, livello CPUID 0x00000007:0 (ecx)

  • avx512vbmi :Istruzioni per la manipolazione dei bit vettoriali AVX512
  • umip :Protezione istruzioni modalità utente
  • pku :chiavi di protezione per lo spazio utente
  • ospke :chiavi di protezione del sistema operativo abilitate
  • avx512_vbmi2 :Istruzioni aggiuntive per la manipolazione dei bit vettoriali AVX512
  • gfni :Nuove istruzioni sul campo di Galois
  • vaes :AES vettoriale
  • vpclmulqdq :Moltiplicazione Carry-Less Double Quadword
  • avx512_vnni :Istruzioni per la rete neurale vettoriale
  • avx512_bitalg :istruzioni VPOPCNT[B,W] e VPSHUF-BITQMB
  • avx512_vpopcntdq :POPCNT per vettori di DW/QW
  • la57 :tabelle di pagina a 5 livelli
  • rdpid :Istruzione RDPID

Caratteristiche CPU definite da AMD, livello CPUID 0x80000007 (ebx)

  • overflow_recov :supporto per il recupero dell'overflow dell'MCA
  • succor :contenimento e ripristino degli errori non correggibili
  • smca :MCA scalabile

Rilevati bug della CPU (definiti da Linux)

  • f00f :Intel F00F
  • fdiv :CPU FDIV
  • coma :Cyrix 6×86 in coma
  • amd_tlb_mmatch :tlb_mmatch AMD Erratum 383
  • amd_apic_c1e :apic_c1e AMD Erratum 400
  • 11ap :Cattivo APIC locale alias 11AP
  • fxsave_leak :FXSAVE perde FOP/FIP/FOP
  • clflush_monitor :AAI65, CLFLUSH richiesto prima di MONITOR
  • sysret_ss_attrs :SYSRET non corregge SS attrs
  • espfix :“” Da IRET a SS a 16 bit corrompe i bit alti di ESP/RSP
  • null_seg :Annullando un selettore si preserva la base
  • swapgs_fence :SWAPGS senza ingresso dip su GS
  • monitor :IPI richiesto per riattivare la CPU remota
  • amd_e400 :La CPU è tra quelle interessate da Erratum 400
  • cpu_meltdown :la CPU è interessata da un attacco di fusione e necessita dell'isolamento della tabella delle pagine del kernel
  • spectre_v1 :La CPU è influenzata dall'attacco Spectre variante 1 con branch condizionali
  • spectre_v2 :La CPU è influenzata dall'attacco Spectre variante 2 con rami indiretti
  • spec_store_bypass :la CPU è interessata dalla vulnerabilità Speculative Store Bypass (variante Spectre 4).

P.S.
Questo elenco è stato derivato da arch/x86/include/asm/cpufeatures.h nel sorgente del kernel. I flag sono elencati nello stesso ordine del codice sorgente. Aiutaci aggiungendo collegamenti alle descrizioni delle funzionalità quando mancano, scrivendo una breve descrizione delle funzionalità che hanno nomi inespressivi e aggiornando l'elenco per le nuove versioni del kernel. L'elenco attuale proviene da Linux 4.15 più alcune aggiunte successive.


Linux
  1. Esplorazione del filesystem Linux /proc

  2. Linux – Collegamento di /proc/mnt a /proc/mounts?

  3. In Linux, cosa significano tutti i valori nel comando top?

  4. Cosa significa &alla fine di un comando Linux?

  5. Cosa significa la lettera 'u' in /dev/urandom?

Che cos'è la shell in Linux?

Cosa succede quando eseguo il comando Cat /proc/cpuinfo?

Linux:numero di processori in /proc/cpuinfo?

Linux:cosa significa la lettera "u" in /dev/urandom?

/proc/cpuinfo e /proc/meminfo in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions