GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Que signifient les drapeaux dans /proc/cpuinfo ?

Comment puis-je savoir si mon processeur possède une fonctionnalité particulière ? (jeu d'instructions 64 bits, virtualisation assistée par matériel, accélérateurs cryptographiques, etc.) Je sais que le fichier /proc/cpuinfo contient cette information, dans les flags ligne, mais que signifient toutes ces abréviations énigmatiques ?

Par exemple, étant donné l'extrait suivant de /proc/cpuinfo , ai-je un processeur 64 bits ? Ai-je une virtualisation matérielle ?

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

Réponse acceptée :

x86

(32 bits alias i386–i686 et 64 bits alias amd64. En d'autres termes, votre poste de travail, ordinateur portable ou serveur.)

FAQ :Ai-je…

  • 64 bits (x86_64/AMD64/Intel64) ? lm
  • Virtualisation matérielle (VMX/AMD-V) ? vmx (Intel), svm (AMD)
  • AES accéléré (AES-NI) ? aes
  • TXT (TPM) ? smx
  • un hyperviseur (annoncé comme tel) ? hypervisor

La plupart des autres fonctionnalités n'intéressent que les compilateurs ou les auteurs du noyau.

Tous les drapeaux

La liste complète se trouve dans les sources du noyau, dans le fichier arch/x86/include/asm/cpufeatures.h .

Fonctionnalités CPU définies par Intel, CPUID niveau 0x00000001 (edx)

Voir également Wikipedia et le tableau 2-27 dans Intel Advanced Vector Extensions Programming Reference

  • fpu  :FPU intégré (prise en charge de la virgule flottante)
  • vme  :Améliorations du mode 8086 virtuel
  • de  :Extensions de débogage (CR4.DE)
  • pse  :Extensions de taille de page (pages de mémoire de 4 Mo)
  • tsc :Compteur d'horodatage (RDTSC)
  • msr  :Registres spécifiques au modèle (RDMSR, WRMSR)
  • pae  :Extensions d'adresse physique (prise en charge de plus de 4 Go de RAM)
  • mce  :Exception de vérification de la machine
  • cx8  :Instruction CMPXCHG8 (comparer et échanger 64 bits)
  • apic  :APIC intégré
  • sep :SYSENTER/SYSEXIT
  • mtrr :Registres de plage de type de mémoire
  • pge  :Activation globale de la page (bit global dans les PDE et les PTE)
  • mca  : Architecture de vérification automatique
  • cmov  : instructions CMOV (mouvement conditionnel) (également FCMOV)
  • pat  :Tableau des attributs de page
  • pse36  :PSE 36 bits (pages volumineuses)
  • pn :Numéro de série du processeur
  • clflush  :Instruction de vidage de la ligne de cache
  • dts :Debug Store (tampon pour les instructions de débogage et de profilage)
  • acpi :ACPI via MSR (surveillance de la température et modulation de la vitesse d'horloge)
  • mmx :Extensions Multimédia
  • fxsr :FXSAVE/FXRSTOR, CR4.OSFXSR
  • sse :Instructions vectorielles Intel SSE
  • sse2 :SSE2
  • ss  :auto-espionnage du processeur
  • ht :Hyper-Threading et/ou multi-core
  • tm :Contrôle automatique de l'horloge (Thermal Monitor)
  • ia64 :Architecture Intel Itanium 64 bits (à ne pas confondre avec l'architecture x86 64 bits d'Intel avec l'indicateur x86-64 ou bit "AMD64" indiqué par le drapeau lm )
  • pbe  :Prise en charge du réveil en attente d'activation de pause (PBE # broche)

Fonctionnalités CPU définies par AMD, niveau CPUID 0x80000001

Voir également Wikipedia et le tableau 2-23 dans Intel Advanced Vector Extensions Programming Reference

  • syscall :SYSCALL (Appel Système Rapide) et SYSRET (Retour d'Appel Système Rapide)
  • mp  :Capacité de multitraitement.
  • nx  :Exécutez la désactivation
  • mmxext :Extensions AMD MMX
  • fxsr_opt :Optimisations FXSAVE/FXRSTOR
  • pdpe1gb :pages d'un Go (permet hugepagesz=1G )
  • rdtscp  :Lire le compteur d'horodatage et l'ID du processeur
  • lm  :Mode long (x86-64 :amd64, également connu sous le nom d'Intel 64, c'est-à-dire compatible 64 bits)
  • 3dnowext :AMD 3DNow ! extensions
  • 3dnow :3DNow ! (Instructions vectorielles AMD, concurrentes du SSE1 d'Intel)

Fonctionnalités CPU définies par Transmeta, niveau CPUID 0x80860001

  • recovery :CPU en mode récupération
  • longrun :Contrôle de puissance à long terme
  • lrti :interface de table LongRun

Autres fonctionnalités, mappage défini par Linux

  • cxmmx :Extensions Cyrix MMX
  • k6_mtrr :MTRR AMD K6 non standard
  • cyrix_arr :Cyrix ARR (=MTRR)
  • centaur_mcr :Centaure MCR (=MTRR)
  • constant_tsc  :TSC coche à un rythme constant
  • up :Noyau SMP tournant sur UP
  • art  :Minuterie toujours en cours d'exécution
  • arch_perfmon  :Performance architecturale Intel
  • pebs  :Échantillonnage basé sur des événements précis
  • bts  :magasin de suivi de succursale
  • rep_good :le microcode rep fonctionne bien
  • acc_power :Mécanisme d'alimentation accumulé AMD
  • nopl :Les instructions NOPL (0F 1F)
  • xtopology :extensions d'énumération de la topologie du processeur
  • tsc_reliable :TSC est connu pour être fiable
  • nonstop_tsc :TSC ne s'arrête pas dans les états C
  • cpuid :le CPU a lui-même l'instruction CPUID
  • extd_apicid :a étendu APICID (8 bits)
  • amd_dcm  :processeur multi-nœuds
  • aperfmperf :APERFMPERF
  • eagerfpu  :Restauration FPU non paresseuse
  • nonstop_tsc_s3 :TSC ne s'arrête pas dans l'état S3
  • tsc_known_freq  :TSC a une fréquence connue
  • mce_recovery  :Le processeur a des vérifications de machine récupérables

Fonctionnalités CPU définies par Intel, CPUID niveau 0x00000001 (ecx)

Voir également Wikipedia et le tableau 2-26 dans Intel Advanced Vector Extensions Programming Reference

  • pni :SSE-3 ("Nouvelles instructions de Prescott")
  • pclmulqdq  : Effectuer une instruction de multiplication sans report de quadwords – accélérateur pour GCM)
  • dtes64  :Magasin de débogage 64 bits
  • monitor  :Prise en charge de Monitor/Mwait (suppléments Intel SSE3)
  • ds_cpl :CPL Qual. Magasin de débogage
  • vmx :Virtualisation matérielle :Intel VMX
  • smx  :Mode plus sûr :TXT (prise en charge du TPM)
  • est  :SpeedStep amélioré
  • tm2 :Moniteur thermique 2
  • ssse3  :SSE-3 supplémentaire
  • cid  :ID de contexte
  • sdbg :débogage du silicium
  • fma :Multiplier-ajouter fusionné
  • cx16 :CMPXCHG16B
  • xtpr  : Envoyer des messages de priorité de tâche
  • pdcm  :Capacités de performances
  • pcid  : Identifiants de contexte de processus
  • dca  : Accès direct au cache
  • sse4_1  :SSE-4.1
  • sse4_2  :SSE-4.2
  • x2apic :x2APIC
  • movbe  :Instruction Déplacer les données après l'échange d'octets
  • popcnt :Renvoie l'instruction Count of Number of Bits Set to 1 (poids de Hamming, c'est-à-dire le nombre de bits)
  • tsc_deadline_timer :Temporisateur d'échéance Tsc
  • aes /aes-ni  :Norme de chiffrement avancé (nouvelles instructions)
  • xsave  :Enregistrer les états étendus du processeur :fournit également XGETBY, XRSTOR, XSETBY
  • avx  : Extensions vectorielles avancées
  • f16c  :conversions ip 16 bits (CVT16)
  • rdrand  :Lire le nombre aléatoire à partir de l'instruction du générateur de nombres aléatoires matériel
  • hypervisor  :Exécution sur un hyperviseur
En relation :Linux – Désactiver les écrans débranchés (xrandr) ?

Fonctionnalités CPU définies par VIA/Cyrix/Centaur, niveau CPUID 0xC0000001

  • rng :Générateur de nombres aléatoires présent (xstore)
  • rng_en  :Générateur de nombres aléatoires activé
  • ace :chiffrement sur CPU (xcrypt)
  • ace_en  :cryptage sur CPU activé
  • ace2  :Moteur de chiffrement avancé v2
  • ace2_en :ACE v2 activé
  • phe :Moteur de hachage PadLock
  • phe_en  :PHE activé
  • pmm :Multiplicateur PadLock Montgomery
  • pmm_en  :PMM activé

Drapeaux AMD plus étendus :niveau CPUID 0x80000001, ecx

  • lahf_lm  :Charger AH à partir des drapeaux (LAHF) et stocker AH dans les drapeaux (SAHF) en mode long
  • cmp_legacy :Si oui HyperThreading non valide
  • svm :"Machine virtuelle sécurisée" :AMD-V
  • extapic :Espace APIC étendu
  • cr8_legacy :CR8 en mode 32 bits
  • abm  :Manipulation avancée des bits
  • sse4a :SSE-4A
  • misalignsse :indique si une exception de protection générale (#GP) est générée lorsque certaines instructions SSE héritées fonctionnent sur des données non alignées. Dépend également du CR0 et du bit de vérification de l'alignement
  • 3dnowprefetch  :instructions de prélecture de 3DNow
  • osvw  :indique la solution de contournement visible du système d'exploitation, qui permet au système d'exploitation de contourner les errata du processeur.
  • ibs  :Échantillonnage basé sur les instructions
  • xop :instructions AVX étendues
  • skinit :Notice SKINIT/STGI
  • wdt  :Minuterie de chien de garde
  • lwp :Profilage léger
  • fma4 :instructions MAC 4 opérandes
  • tce  :extension du cache de traduction
  • nodeid_msr :NodeId MSR
  • tbm  :Manipulation des bits de fin
  • topoext :Feuilles CPUID des extensions de topologie
  • perfctr_core  :Extensions de compteur de performances de base
  • perfctr_nb :Extensions de compteur de performances NB
  • bpext  :extension de point d'arrêt de données
  • ptsc  :compteur d'horodatage des performances
  • perfctr_l2  :Extensions de compteur de performances L2
  • mwaitx :MWAIT extension (MONITORX /MWAITX )

Drapeaux auxiliaires :Linux défini - Pour les fonctionnalités dispersées dans différents niveaux de CPUID

  • ring3mwait :Sonnerie 3 MONITOR/MWAIT
  • cpuid_fault  :Erreur CPUID Intel
  • cpb  :Amélioration des performances du cœur AMD
  • epb  :Prise en charge de IA32_ENERGY_PERF_BIAS
  • cat_l3 :Technologie d'allocation de cache L3
  • cat_l2 :Technologie d'allocation de cache L2
  • cdp_l3  :Priorisation du code et des données L3
  • invpcid_single :effectivement invpcid et CR4.PCIDE=1
  • hw_pstate :AMD HW-PState
  • proc_feedback :Interface AMD ProcFeedback
  • sme  :Chiffrement sécurisé de la mémoire AMD
  • pti  : Isolation de la table des pages du noyau (Kaiser)
  • retpoline  :Atténuation de la retpoline pour la variante 2 de Spectre (branches indirectes)
  • retpoline_amd  :Atténuation AMD Retpoline
  • intel_ppin  :Numéro d'inventaire du processeur Intel
  • avx512_4vnniw  :Instructions pour le réseau neuronal AVX-512
  • avx512_4fmaps :AVX-512 Multiplier Accumulation Simple précision
  • mba  :Allocation de bande passante mémoire
  • rsb_ctxsw  :Remplir RSB sur les changements de contexte

Drapeaux de virtualisation :Linux défini

  • tpr_shadow :Intel TPR Shadow
  • vnmi  :Intel Virtual NMI
  • flexpriority :Intel FlexPriority
  • ept  :Table de pages étendue Intel
  • vpid  :ID du processeur virtuel Intel
  • vmmcall :préférez VMMCALL vers VMCALL

Fonctionnalités CPU définies par Intel, niveau CPUID 0x00000007:0 (ebx)

  • fsgsbase  :{RD/WR}{FS/GS}instructions de base
  • tsc_adjust :TSC réglage MSR
  • bmi1 :1er groupe d'extensions de manipulation de bits
  • hle :Verrouillage matériel Elision
  • avx2 :Mode d'emploi AVX2
  • smep  : Protection d'exécution en mode superviseur
  • bmi2  :Extensions de manipulation de bits du 2e groupe
  • erms  :REP amélioré MOVSB/STOSB
  • invpcid  :ID de contexte de processeur invalide
  • rtm  :Mémoire transactionnelle restreinte
  • cqm  :Surveillance de la qualité de service du cache
  • mpx  :Extension de protection de la mémoire
  • rdt_a  :Allocation de technologie du directeur des ressources
  • avx512f :Fondation AVX-512
  • avx512dq :Mode d'emploi AVX-512 Double/Quad
  • rdseed :L'instruction RDSEED
  • adx :Les instructions ADCX et ADOX
  • smap  :Prévention d'accès en mode superviseur
  • clflushopt :CLFLUSHOPT instructions
  • clwb :CLWB instructions
  • intel_pt  :Traçage du processeur Intel
  • avx512pf  : prélecture AVX-512
  • avx512er :AVX-512 Exponentielle et Réciproque
  • avx512cd :Détection de conflit AVX-512
  • sha_ni :Extensions d'instructions SHA1/SHA256
  • avx512bw :AVX-512 instructions octet/mot
  • avx512vl :Extensions de longueur vectorielle AVX-512 128/256

Fonctionnalités d'état étendu, CPUID niveau 0x0000000d:1 (eax)

  • xsaveopt :XSAVES optimisé
  • xsavec :XSAVEC
  • xgetbv1 :XGETBV avec ECX =1
  • xsaves :XSAVES /XRSTORS

Sous-feuille QoS CPU définie par Intel, niveau CPUID 0x0000000F:0 (edx)

  • cqm_llc  :QoS LLC

Sous-feuille QoS CPU définie par Intel, niveau CPUID 0x0000000F:1 (edx)

  • cqm_occup_llc :Surveillance de l'occupation LLC
  • cqm_mbm_total  :Surveillance totale de la MBM LLC
  • cqm_mbm_local :Surveillance MBM locale LLC

Fonctionnalités CPU définies par AMD, niveau CPUID 0x80000008 (ebx)

  • clzero :CLZERO instructions
  • irperf :compteur de performances des instructions retirées
  • xsaveerptr  :Toujours enregistrer/restaurer les pointeurs d'erreur FP

Feuille de gestion thermique et de l'alimentation, niveau CPUID 0x00000006 (eax)

  • dtherm (anciennement dts ) :capteur thermique numérique
  • ida  :Accélération dynamique Intel
  • arat  :Toujours exécuter le minuteur APIC
  • pln  :Notification de limite de puissance Intel
  • pts  :État thermique du package Intel
  • hwp  : états P du matériel Intel
  • hwp_notify  :Notification HWP
  • hwp_act_window  :Fenêtre d'activité HWP
  • hwp_epp :Préférence de performance énergétique HWP
  • hwp_pkg_req  :requête au niveau du package HWP

Identification des fonctionnalités AMD SVM, niveau CPUID 0x8000000a (edx)

  • npt  :Prise en charge des tables de pages imbriquées AMD
  • lbrv  :Prise en charge de la virtualisation AMD LBR
  • svm_lock :MSR de verrouillage AMD SVM
  • nrip_save  :Sauvegarde AMD SVM next_rip
  • tsc_scale  :Prise en charge de la mise à l'échelle AMD TSC
  • vmcb_clean  :Prise en charge des bits propres AMD VMCB
  • flushbyasid  :Prise en charge AMD flush-by-ASID
  • decodeassists  :Prise en charge des assistants de décodage AMD
  • pausefilter  :Interception de pause filtrée par AMD
  • pfthreshold  :Seuil du filtre de pause AMD
  • avic  :Contrôleur d'interruption virtuel
  • vmsave_vmload :VMSAVE virtuel VMLOAD
  • vgif :GIF virtuel
En relation:Linux - Ajouts d'invités "impossible de localiser le programme" Kali Linux 2.0 ?

Fonctionnalités CPU définies par Intel, niveau CPUID 0x00000007:0 (ecx)

  • avx512vbmi :Instructions de manipulation de bits vectoriels AVX512
  • umip  : Protection des instructions en mode utilisateur
  • pku  :Clés de protection pour l'espace utilisateur
  • ospke  :Activer les clés de protection du système d'exploitation
  • avx512_vbmi2 :Instructions supplémentaires de manipulation de bits vectoriels AVX512
  • gfni :Champ de Galois Nouvelles Instructions
  • vaes :AES vectoriel
  • vpclmulqdq :Multiplication sans report Double Quadword
  • avx512_vnni  : Instructions sur le réseau de neurones vectoriels
  • avx512_bitalg :instructions VPOPCNT[B,W] et VPSHUF-BITQMB
  • avx512_vpopcntdq :POPCNT pour les vecteurs de DW/QW
  • la57 :tableaux de pages à 5 niveaux
  • rdpid :Instruction RDPID

Fonctionnalités CPU définies par AMD, niveau CPUID 0x80000007 (ebx)

  • overflow_recov  :Prise en charge de la récupération de débordement MCA
  • succor  :confinement et récupération des erreurs incorrigibles
  • smca  :MCA évolutif

Bogues CPU détectés (définis par Linux)

  • f00f :Intel F00F
  • fdiv :CPU FDIV
  • coma :Cyrix 6×86 coma
  • amd_tlb_mmatch :tlb_mmatch AMD Erratum 383
  • amd_apic_c1e :apic_c1e AMD Erratum 400
  • 11ap :Mauvais APIC local alias 11AP
  • fxsave_leak :FXSAVE fuit FOP/FIP/FOP
  • clflush_monitor :AAI65, CLFLUSH requis avant MONITOR
  • sysret_ss_attrs :SYSRET ne corrige pas les attrs SS
  • espfix :"" IRET en SS 16 bits corrompt les bits élevés ESP/RSP
  • null_seg  :Annuler un sélecteur préserve la base
  • swapgs_fence :SWAPGS sans input dépend de GS
  • monitor  :IPI requis pour réveiller le CPU distant
  • amd_e400 :Le CPU fait partie des affectés par l'erratum 400
  • cpu_meltdown  :Le processeur est affecté par l'attaque par effondrement et nécessite l'isolation de la table des pages du noyau
  • spectre_v1  :Le processeur est affecté par l'attaque Spectre variante 1 avec des branches conditionnelles
  • spectre_v2  :Le processeur est affecté par l'attaque Spectre variante 2 avec des branches indirectes
  • spec_store_bypass  :Le processeur est affecté par la vulnérabilité Speculative Store Bypass (Spectre variante 4).

P.S.
Cette liste est dérivée de arch/x86/include/asm/cpufeatures.h dans la source du noyau. Les drapeaux sont répertoriés dans le même ordre que le code source. Aidez-nous en ajoutant des liens vers les descriptions des fonctionnalités lorsqu'elles manquent, en écrivant une courte description des fonctionnalités qui ont un nom inexpressif et en mettant à jour la liste des nouvelles versions du noyau. La liste actuelle provient de Linux 4.15 plus quelques ajouts ultérieurs.


Linux
  1. Explorer le système de fichiers Linux /proc

  2. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  3. Que se passe-t-il lorsque j'exécute la commande Cat /proc/cpuinfo ?

  4. Linux – Lier /proc/mnt à /proc/mounts ?

  5. Quel est l'équivalent de /proc/cpuinfo sur FreeBSD v8.1 ?

Qu'est-ce que le Shell sous Linux ?

Linux – Nombre de processeurs dans /proc/cpuinfo ?

Linux – Que signifie la lettre « u » dans /dev/urandom ?

Fichiers /proc/cpuinfo et /proc/meminfo sous Linux

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

Que signifie la lettre « u » dans /dev/urandom ?