GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Was bedeuten die Flags in /proc/cpuinfo?

Woran erkenne ich, ob mein Prozessor über eine bestimmte Funktion verfügt? (64-Bit-Befehlssatz, Hardware-unterstützte Virtualisierung, kryptografische Beschleuniger usw.) Ich weiß, dass die Datei /proc/cpuinfo enthält diese Informationen in den flags line, aber was bedeuten all diese kryptischen Abkürzungen?

Zum Beispiel angesichts des folgenden Auszugs aus /proc/cpuinfo , habe ich eine 64-Bit-CPU? Habe ich Hardware-Virtualisierung?

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

Akzeptierte Antwort:

x86

(32-Bit, auch bekannt als i386–i686, und 64-Bit, auch bekannt als AMD64. Mit anderen Worten, Ihre Workstation, Ihr Laptop oder Ihr Server.)

FAQ:Habe ich…

  • 64-Bit (x86_64/AMD64/Intel64)? lm
  • Hardware-Virtualisierung (VMX/AMD-V)? vmx (Intel), svm (AMD)
  • Beschleunigtes AES (AES-NI)? aes
  • TXT (TPM)? smx
  • ein Hypervisor (als solcher angekündigt)? hypervisor

Die meisten anderen Features sind nur für Compiler- oder Kernel-Autoren von Interesse.

Alle Flaggen

Die vollständige Auflistung befindet sich in den Kernelquellen, in der Datei arch/x86/include/asm/cpufeatures.h .

Von Intel definierte CPU-Funktionen, CPUID-Ebene 0x00000001 (edx)

Siehe auch Wikipedia und Tabelle 2-27 in Intel Advanced Vector Extensions Programming Reference

  • fpu :Integrierte FPU (Gleitkommaunterstützung)
  • vme :Verbesserungen im virtuellen 8086-Modus
  • de :Erweiterungen debuggen (CR4.DE)
  • pse :Page Size Extensions (4 MB Speicherseiten)
  • tsc :Zeitstempelzähler (RDTSC)
  • msr :Modellspezifische Register (RDMSR, WRMSR)
  • pae :Physische Adresserweiterungen (Unterstützung für mehr als 4 GB RAM)
  • mce :Maschinenprüfausnahme
  • cx8 :CMPXCHG8-Anweisung (64-Bit-Vergleich und -Swap)
  • apic :Onboard-APIC
  • sep :SYSENTER/SYSEXIT
  • mtrr :Speichertypbereichsregister
  • pge :Page Global Enable (globales Bit in PDEs und PTEs)
  • mca :Machine Check Architecture
  • cmov :CMOV-Anweisungen (bedingte Bewegung) (auch FCMOV)
  • pat :Seitenattributtabelle
  • pse36 :36-Bit-PSEs (riesige Seiten)
  • pn :Seriennummer des Prozessors
  • clflush :Cache-Line-Flush-Anweisung
  • dts :Debug Store (Puffer für Debugging- und Profiling-Anweisungen)
  • acpi :ACPI über MSR (Temperaturüberwachung und Taktratenmodulation)
  • mmx :Multimedia-Erweiterungen
  • fxsr :FXSAVE/FXRSTOR, CR4.OSFXSR
  • sse :Intel SSE-Vektoranweisungen
  • sse2 :SSE2
  • ss :CPU-Self-Snoop
  • ht :Hyper-Threading und/oder Multicore
  • tm :Automatische Taktsteuerung (Thermal Monitor)
  • ia64 :Intel Itanium Architecture 64-Bit (nicht zu verwechseln mit Intels 64-Bit x86-Architektur mit Flag x86-64 oder „AMD64“-Bit, angezeigt durch das Flag lm )
  • pbe :Wakeup-Unterstützung für Pending Break Enable (PBE#-Pin)

AMD-definierte CPU-Funktionen, CPUID-Ebene 0x80000001

Siehe auch Wikipedia und Tabelle 2-23 in Intel Advanced Vector Extensions Programming Reference

  • syscall :SYSCALL (schneller Systemaufruf) und SYSRET (Rückkehr vom schnellen Systemaufruf)
  • mp :Multiprocessing-fähig.
  • nx :Deaktivieren ausführen
  • mmxext :AMD MMX-Erweiterungen
  • fxsr_opt :FXSAVE/FXRSTOR-Optimierungen
  • pdpe1gb :Ein-GB-Seiten (erlaubt hugepagesz=1G )
  • rdtscp :Zeitstempelzähler und Prozessor-ID lesen
  • lm :Long Mode (x86-64:amd64, auch bekannt als Intel 64, also 64-Bit-fähig)
  • 3dnowext :AMD 3DNow! Erweiterungen
  • 3dnow :3DJetzt! (AMD-Vektoranweisungen, konkurrierend mit Intels SSE1)

Transmeta-definierte CPU-Funktionen, CPUID-Ebene 0x80860001

  • recovery :CPU im Wiederherstellungsmodus
  • longrun :Langfristige Leistungskontrolle
  • lrti :LongRun-Tabellenschnittstelle

Andere Funktionen, Linux-definiertes Mapping

  • cxmmx :Cyrix MMX-Erweiterungen
  • k6_mtrr :AMD K6 Nicht-Standard-MTRRs
  • cyrix_arr :Cyrix ARRs (=MTRRs)
  • centaur_mcr :Centaur MCRs (=MTRRs)
  • constant_tsc :TSC tickt mit einer konstanten Rate
  • up :SMP-Kernel läuft auf UP
  • art :Immer laufender Timer
  • arch_perfmon :Intel Architectural PerfMon
  • pebs :Präzises ereignisbasiertes Sampling
  • bts :Branch Trace Store
  • rep_good :Rep-Mikrocode funktioniert gut
  • acc_power :AMD Akkumulierter Leistungsmechanismus
  • nopl :Die NOPL (0F 1F) Anweisungen
  • xtopology :cpu topology enum extensions
  • tsc_reliable :TSC ist als zuverlässig bekannt
  • nonstop_tsc :TSC stoppt nicht in C-Zuständen
  • cpuid :CPU hat CPUID-Anweisung selbst
  • extd_apicid :hat erweiterte APICID (8 Bit)
  • amd_dcm :Mehrknotenprozessor
  • aperfmperf :APERFMPERF
  • eagerfpu :Nicht verzögerte FPU-Wiederherstellung
  • nonstop_tsc_s3 :TSC stoppt nicht im S3-Zustand
  • tsc_known_freq :TSC hat eine bekannte Häufigkeit
  • mce_recovery :CPU hat wiederherstellbare Maschinenprüfungen

Von Intel definierte CPU-Funktionen, CPUID-Ebene 0x00000001 (ecx)

Siehe auch Wikipedia und Tabelle 2-26 in Intel Advanced Vector Extensions Programming Reference

  • pni :SSE-3 („Prescott New Instructions“)
  • pclmulqdq :Ausführen einer übertragslosen Multiplikation des Quadword-Befehls – Beschleuniger für GCM)
  • dtes64 :64-Bit-Debug-Speicher
  • monitor :Monitor/Mwait-Unterstützung (Intel SSE3-Ergänzungen)
  • ds_cpl :CPL-Qual. Debug-Speicher
  • vmx :Hardware-Virtualisierung:Intel VMX
  • smx :Sicherer Modus:TXT (TPM-Unterstützung)
  • est :Verbesserter SpeedStep
  • tm2 :Wärmeüberwachung 2
  • ssse3 :Ergänzendes SSE-3
  • cid :Kontext-ID
  • sdbg :Silicon-Debug
  • fma :Fused Multiply-Add
  • cx16 :CMPXCHG16B
  • xtpr :Aufgabenprioritätsnachrichten senden
  • pdcm :Leistungsfähigkeit
  • pcid :Prozesskontextbezeichner
  • dca :Direkter Cache-Zugriff
  • sse4_1 :SSE-4.1
  • sse4_2 :SSE-4.2
  • x2apic :x2APIC
  • movbe :Move Data After Swapping Bytes-Anweisung
  • popcnt :Anweisung „Count of Number of Bits Set to 1“ zurückgeben (Hamming-Gewicht, d. h. Bitanzahl)
  • tsc_deadline_timer :Tsc-Termintimer
  • aes /aes-ni :Erweiterter Verschlüsselungsstandard (neue Anweisungen)
  • xsave :Erweiterte Prozessorzustände speichern:Bietet auch XGETBY,XRSTOR,XSETBY
  • avx :Erweiterte Vektorerweiterungen
  • f16c :16-Bit-FP-Konvertierungen (CVT16)
  • rdrand :Lese die Zufallszahl aus der Anweisung des Hardware-Zufallszahlengenerators
  • hypervisor :Läuft auf einem Hypervisor
Verwandte:Linux – Unplugged Displays deaktivieren (xrandr)?

VIA/Cyrix/Centaur-definierte CPU-Funktionen, CPUID-Level 0xC0000001

  • rng :Zufallszahlengenerator vorhanden (xstore)
  • rng_en :Zufallszahlengenerator aktiviert
  • ace :Krypto auf der CPU (xcrypt)
  • ace_en :Verschlüsselung auf der CPU aktiviert
  • ace2 :Advanced Cryptography Engine v2
  • ace2_en :ACE v2 aktiviert
  • phe :PadLock-Hash-Engine
  • phe_en :PHE aktiviert
  • pmm :Vorhängeschloss-Montgomery-Multiplikator
  • pmm_en :PMM aktiviert

Erweiterte AMD-Flags:CPUID-Level 0x80000001, ecx

  • lahf_lm :Lade AH aus Flags (LAHF) und speichere AH in Flags (SAHF) im langen Modus
  • cmp_legacy :Wenn ja, ist HyperThreading nicht gültig
  • svm :„Sichere virtuelle Maschine“:AMD-V
  • extapic :Erweiterter APIC-Speicherplatz
  • cr8_legacy :CR8 im 32-Bit-Modus
  • abm :Erweiterte Bit-Manipulation
  • sse4a :SSE-4A
  • misalignsse :Gibt an, ob eine allgemeine Schutzausnahme (#GP) generiert wird, wenn einige ältere SSE-Anweisungen mit nicht ausgerichteten Daten arbeiten. Hängt auch von CR0 und dem Alignment Checking Bit ab
  • 3dnowprefetch :3DNow Prefetch-Anweisungen
  • osvw :Zeigt OS Visible Workaround an, der es dem Betriebssystem ermöglicht, Prozessor-Errata zu umgehen.
  • ibs :Anweisungsbasiertes Sampling
  • xop :erweiterte AVX-Anweisungen
  • skinit :SKINIT/STGI-Anweisungen
  • wdt :Watchdog-Timer
  • lwp :Leichte Profilerstellung
  • fma4 :4 Operanden MAC-Anweisungen
  • tce :Übersetzungs-Cache-Erweiterung
  • nodeid_msr :NodeId MSR
  • tbm :Trailing-Bit-Manipulation
  • topoext :CPUID-Blätter der Topologieerweiterungen
  • perfctr_core :Kernleistungszähler-Erweiterungen
  • perfctr_nb :NB-Leistungszählererweiterungen
  • bpext :Datenhaltepunkterweiterung
  • ptsc :Zeitstempelleistungszähler
  • perfctr_l2 :L2-Leistungszählererweiterungen
  • mwaitx :MWAIT Erweiterung (MONITORX /MWAITX )

Hilfs-Flags:Linux definiert – Für Funktionen, die in verschiedenen CPUID-Ebenen verstreut sind

  • ring3mwait :Klingel 3 MONITOR/WARTEN
  • cpuid_fault :Intel CPUID fehlerhaft
  • cpb :AMD Core Performance Boost
  • epb :IA32_ENERGY_PERF_BIAS-Unterstützung
  • cat_l3 :Cache-Zuweisungstechnologie L3
  • cat_l2 :Cache-Zuweisungstechnologie L2
  • cdp_l3 :Code- und Datenpriorisierung L3
  • invpcid_single :effektiv invpcid und CR4.PCIDE=1
  • hw_pstate :AMD HW-PState
  • proc_feedback :AMD ProcFeedbackInterface
  • sme :AMD Secure Memory Encryption
  • pti :Kernel Page Table Isolation (Kaiser)
  • retpoline :Retpoline-Minderung für Spectre-Variante 2 (indirekte Zweige)
  • retpoline_amd :AMD Retpoline-Minderung
  • intel_ppin :Bestandsnummer des Intel-Prozessors
  • avx512_4vnniw :AVX-512 Neuronale Netzwerkanweisungen
  • avx512_4fmaps :AVX-512 Akkumulation multiplizieren Einfache Genauigkeit
  • mba :Zuweisung der Speicherbandbreite
  • rsb_ctxsw :RSB bei Kontextwechseln füllen

Virtualisierungs-Flags:Linux definiert

  • tpr_shadow :Intel TPR Shadow
  • vnmi :Intel Virtual NMI
  • flexpriority :Intel FlexPriority
  • ept :Erweiterte Seitentabelle von Intel
  • vpid :ID des virtuellen Intel-Prozessors
  • vmmcall :bevorzuge VMMCALL zu VMCALL

Von Intel definierte CPU-Funktionen, CPUID-Ebene 0x00000007:0 (ebx)

  • fsgsbase :{RD/WR}{FS/GS}BASE-Anweisungen
  • tsc_adjust :TSC-Anpassung MSR
  • bmi1 :Bitmanipulationserweiterungen der 1. Gruppe
  • hle :Aufheben der Hardwaresperre
  • avx2 :AVX2-Anleitung
  • smep :Ausführungsschutz im Supervisor-Modus
  • bmi2 :Erweiterungen zur Bitmanipulation der 2. Gruppe
  • erms :Verbessertes REP MOVSB/STOSB
  • invpcid :Prozessorkontext-ID ungültig machen
  • rtm :Eingeschränktes Transaktionsgedächtnis
  • cqm :Cache-QoS-Überwachung
  • mpx :Speicherschutzerweiterung
  • rdt_a :Technologiezuordnung des Ressourcendirektors
  • avx512f :AVX-512-Grundlagen
  • avx512dq :AVX-512 Doppel-/Quad-Anleitung
  • rdseed :Die RDSEED-Anweisung
  • adx :Die ADCX- und ADOX-Anweisungen
  • smap :Zugangsverhinderung im Supervisor-Modus
  • clflushopt :CLFLUSHOPT Anleitung
  • clwb :CLWB Anleitung
  • intel_pt :Intel-Prozessor-Tracing
  • avx512pf :AVX-512 Prefetch
  • avx512er :AVX-512 Exponential und Reziprok
  • avx512cd :AVX-512 Konflikterkennung
  • sha_ni :SHA1/SHA256-Anweisungserweiterungen
  • avx512bw :AVX-512 Byte/Wort-Anweisungen
  • avx512vl :AVX-512 128/256 Vektorlängenerweiterungen

Erweiterte Zustandsfunktionen, CPUID-Level 0x0000000d:1 (eax)

  • xsaveopt :Optimiertes XSAVE
  • xsavec :XSAVEC
  • xgetbv1 :XGETBV mit ECX =1
  • xsaves :XSAVES /XRSTORS

Intel-definiertes CPU-QoS-Unterblatt, CPUID-Ebene 0x0000000F:0 (edx)

  • cqm_llc :LLC-QoS

Intel-definiertes CPU-QoS-Unterblatt, CPUID-Level 0x0000000F:1 (edx)

  • cqm_occup_llc :LLC-Belegungsüberwachung
  • cqm_mbm_total :LLC-Gesamt-MBM-Überwachung
  • cqm_mbm_local :LLC lokale MBM-Überwachung

AMD-definierte CPU-Funktionen, CPUID-Ebene 0x80000008 (ebx)

  • clzero :CLZERO Anleitung
  • irperf :Anweisungen zurückgezogener Leistungszähler
  • xsaveerptr :FP-Fehlerzeiger immer speichern/wiederherstellen

Wärme- und Energieverwaltungsblatt, CPUID-Ebene 0x00000006 (eax)

  • dtherm (ehemals dts ):digitaler Wärmesensor
  • ida :Intel Dynamic Acceleration
  • arat :APIC-Timer läuft immer
  • pln :Intel Power Limit-Benachrichtigung
  • pts :Thermischer Status des Intel-Pakets
  • hwp :P-Zustände der Intel-Hardware
  • hwp_notify :HWP-Benachrichtigung
  • hwp_act_window :HWP-Aktivitätsfenster
  • hwp_epp :HWP-Energieleistungspräferenz
  • hwp_pkg_req :Anforderung auf HWP-Paketebene

AMD SVM Feature Identification, CPUID level 0x8000000a (edx)

  • npt :AMD Nested Page Table-Unterstützung
  • lbrv :Unterstützung für AMD LBR-Virtualisierung
  • svm_lock :AMD SVM sperrt MSR
  • nrip_save :AMD SVM next_rip speichern
  • tsc_scale :Unterstützung für AMD TSC-Skalierung
  • vmcb_clean :AMD VMCB Clean Bits-Unterstützung
  • flushbyasid :AMD Flush-by-ASID-Unterstützung
  • decodeassists :AMD Decode Assists-Unterstützung
  • pausefilter :AMD-gefilterter Pausenabschnitt
  • pfthreshold :AMD-Pausenfilterschwelle
  • avic :Virtueller Interrupt-Controller
  • vmsave_vmload :Virtuelles VMSAVE VMLOAD
  • vgif :Virtuelles GIF
Verwandte:Linux – Gastzusätze „Programm kann nicht gefunden werden“ Kali Linux 2.0?

Von Intel definierte CPU-Funktionen, CPUID-Ebene 0x00000007:0 (ecx)

  • avx512vbmi :AVX512 Vektor-Bit-Manipulationsanweisungen
  • umip :Benutzermodus-Anweisungsschutz
  • pku :Schutzschlüssel für Userspace
  • ospke :Betriebssystem-Schutzschlüssel aktivieren
  • avx512_vbmi2 :Zusätzliche Anweisungen zur AVX512-Vector-Bit-Manipulation
  • gfni :Neue Anweisungen für das Galois-Feld
  • vaes :Vektor-AES
  • vpclmulqdq :Übertragsloses Multiplikations-Doppelquadwort
  • avx512_vnni :Anweisungen für neuronale Vektornetzwerke
  • avx512_bitalg :Anweisungen VPOPCNT[B,W] und VPSHUF-BITQMB
  • avx512_vpopcntdq :POPCNT für Vektoren von DW/QW
  • la57 :Seitentabellen mit 5 Ebenen
  • rdpid :RDPID-Anweisung

AMD-definierte CPU-Funktionen, CPUID-Level 0x80000007 (ebx)

  • overflow_recov :MCA-Überlauf-Wiederherstellungsunterstützung
  • succor :Eingrenzung und Wiederherstellung nicht korrigierbarer Fehler
  • smca :Skalierbarer MCA

Erkannte CPU-Fehler (Linux-definiert)

  • f00f :Intel F00F
  • fdiv :CPU-FDIV
  • coma :Cyrix 6×86 Koma
  • amd_tlb_mmatch :tlb_mmatch AMD Erratum 383
  • amd_apic_c1e :apic_c1e AMD Erratum 400
  • 11ap :Schlechter lokaler APIC alias 11AP
  • fxsave_leak :FXSAVE verliert FOP/FIP/FOP
  • clflush_monitor :AAI65, CLFLUSH vor MONITOR erforderlich
  • sysret_ss_attrs :SYSRET repariert keine SS-Attribute
  • espfix :„“ IRET zu 16-Bit-SS beschädigt ESP/RSP-High-Bits
  • null_seg :Das Nullen eines Selektors bewahrt die Basis
  • swapgs_fence :SWAPGS ohne Eingabe abhängig von GS
  • monitor :IPI erforderlich, um Remote-CPU aufzuwecken
  • amd_e400 :CPU ist von Erratum 400 betroffen
  • cpu_meltdown :Die CPU ist von einem Meltdown-Angriff betroffen und benötigt eine Isolierung der Kernelseitentabelle
  • spectre_v1 :CPU ist von Spectre-Angriff Variante 1 mit bedingten Verzweigungen betroffen
  • spectre_v2 :CPU ist von Spectre Variante 2 Angriff mit indirekten Verzweigungen betroffen
  • spec_store_bypass :CPU ist von der Speculative Store Bypass-Schwachstelle betroffen (Spectre-Variante 4).

P.S.
Diese Auflistung wurde von arch/x86/include/asm/cpufeatures.h abgeleitet in der Kernelquelle. Die Flags werden in der gleichen Reihenfolge wie der Quellcode aufgelistet. Bitte helfen Sie, indem Sie Links zu Beschreibungen von Funktionen hinzufügen, wenn sie fehlen, indem Sie eine kurze Beschreibung von Funktionen schreiben, die einen nicht aussagekräftigen Namen haben, und indem Sie die Liste für neue Kernel-Versionen aktualisieren. Die aktuelle Liste stammt von Linux 4.15 plus einigen späteren Ergänzungen.


Linux
  1. Untersuchen des Linux /proc-Dateisystems

  2. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  3. Was passiert, wenn ich den Befehl Cat /proc/cpuinfo ausführe?

  4. Linux – Was bedeutet der Buchstabe „u“ in /dev/urandom?

  5. Was ist das Äquivalent von /proc/cpuinfo unter FreeBSD v8.1?

Was ist die Shell unter Linux?

Linux – /proc/mnt mit /proc/mounts verknüpfen?

Linux – Anzahl der Prozessoren in /proc/cpuinfo?

/proc/cpuinfo- und /proc/meminfo-Dateien unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Was bedeutet das Suffix .d unter Linux?