List of CPU Flags
Technical documentation
05/25/2013
Show CPU Details¶
To get a description, including a list of flags the CPU supports, in GNU/Linux use:
cat /proc/cpuinfo
List of CPU Flags¶
All the flags¶
The full listing is in the kernel source, in the file arch/x86/include/asm/cpufeature.h .
Intel-defined CPU features, CPUID level 0x00000001 (edx)
See also Wikipedia and table 2-27 in Intel Advanced Vector Extensions Programming Reference
- fpu: Onboard FPU (floating point support)
- vme: Virtual Mode Extensions (8086 mode)
- de: Debugging Extensions (CR4.DE)
- pse: Page Size Extensions (4MB pages)
- tsc: Time Stamp Counter (RDTSC)
- msr: Model-Specific Registers (RDMSR, WRMSR)
- pae: Physical Address Extensions (support for more than 4GB of RAM)
- mce: Machine Check Exception
- cx8: CMPXCHG8 instruction (64-bit compare-and-swap )
- apic: Onboard APIC
- sep: SYSENTER/SYSEXIT
- mtrr: Memory Type Range Registers
- pge: Page Global Enable (global bit in PDEs and PTEs)
- mca: Machine Check Architecture
- cmov: CMOV instructions (conditional move) (also FCMOV )
- pat: Page Attribute Table
- pse36: 36-bit PSEs (huge pages)
- pn: Processor serial number
- clflush: CLFLUSH instruction
- dts: Debug Store (buffer for debugging and profiling instructions)
- acpi: ACPI via MSR (temperature monitoring and clock speed modulation)
- mmx: Multimedia Extensions
- fxsr: FXSAVE/FXRSTOR, CR4.OSFXSR
- sse: Intel SSE vector instructions
- sse2: SSE2
- ss: CPU self snoop
- ht: Hyper-Threading
- tm: Automatic clock control (Thermal Monitor)
- ia64: IA-64 processor (not to be confused with x86-64 = amd64, indicated by lm)
- pbe: Pending Break Enable
AMD-defined CPU features, CPUID level 0x80000001¶
See also Wikipedia and table 2-23 in Intel Advanced Vector Extensions Programming Reference
- syscall: SYSCALL/SYSRET
- mp: MP Capable.
- nx: Execute Disable
- mmxext: AMD MMX extensions
- fxsr_opt: FXSAVE/FXRSTOR optimizations
- pdpe1gb: GB pages
- rdtscp: RDTSCP
- lm: Long Mode (x86-64 : amd64, also known as Intel 64, i.e. 64-bit capable)
- 3dnowext: AMD 3DNow! extensions
- 3dnow: 3DNow! (AMD vector instructions, competing with Intel's SSE1)
Transmeta-defined CPU features, CPUID level 0x80860001¶
- recovery: CPU in recovery mode
- longrun: Longrun power control
- lrti: LongRun table interface
Other features, Linux-defined mapping¶
- cxmmx: Cyrix MMX extensions
- k6_mtrr: AMD K6 nonstandard MTRRs
- cyrix_arr: Cyrix ARRs (= MTRRs)
- centaur_mcr: Centaur MCRs (= MTRRs)
- constant_tsc: TSC ticks at a constant rate
- up: smp kernel running on up
- arch_perfmon: Intel Architectural PerfMon
- pebs: Precise-Event Based Sampling
- bts: Branch Trace Store
- rep_good: rep microcode works well
- nopl: The NOPL (0F 1F) instructions
- xtopology: cpu topology enum extensions
- tsc_reliable: TSC is known to be reliable
- nonstop_tsc: TSC does not stop in C states
- extd_apicid: has extended APICID (8 bits)
- amd_dcm: multi-node processor
- aperfmperf: APERFMPERF
Intel-defined CPU features, CPUID level 0x00000001 (ecx)¶
See also Wikipedia and table 2-26 in Intel Advanced Vector Extensions Programming Reference
- pni: SSE-3 (“ Prescott New Instructions”)
- pclmulqdq: PCLMULQDQ instruction (carry-less multiplication — accelerator for GCM )
- dtes64: 64-bit Debug Store
- monitor: Monitor/Mwait support (Intel SSE3 supplements )
- ds_cpl: CPL Qual. Debug Store
- vmx: Hardware virtualization: Intel VMX
- smx: Safer mode: TXT (TPM support)
- est: Enhanced SpeedStep
- tm2: Thermal Monitor 2
- ssse3: Supplemental SSE-3
- cid: Context ID
- fma: Fused multiply-add
- cx16: CMPXCHG16B
- xtpr: Send Task Priority Messages
- pdcm: Performance Capabilities
- pcid: Process Context Identifiers
- dca: Direct Cache Access
- sse4_1: SSE-4.1
- sse4_2: SSE-4.2
- x2apic: x2APIC
- movbe: MOVBE instruction
- popcnt: POPCNT instruction (Hamming weight , i.e. bit count)
- tsc_deadline_timer: Tsc deadline timer
- aes: AES instructions: AES-NI
- xsave: XSAVE/XRSTOR/XSETBV/XGETBV
- avx: Advanced Vector Extensions
- f16c: 16-bit fp conversions (CVT16 )
- rdrand: The RDRAND instruction (hardware random number generator)
- hypervisor: Running on a hypervisor
VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001¶
- rng: RNG present (xstore)
- rng_en: RNG enabled
- ace: on-CPU crypto (xcrypt)
- ace_en: on-CPU crypto enabled
- ace2: Advanced Cryptography Engine v2
- ace2_en: ACE v2 enabled
- phe: PadLock Hash Engine
- phe_en: PHE enabled
- pmm: PadLock Montgomery Multiplier
- pmm_en: PMM enabled
More extended AMD flags: CPUID level 0x80000001, ecx¶
- lahf_lm: LAHF/SAHF in long mode
- cmp_legacy: If yes HyperThreading not valid
- svm: “Secure virtual machine”: AMD-V
- extapic: Extended APIC space
- cr8_legacy: CR8 in 32-bit mode
- abm: Advanced bit manipulation
- sse4a: SSE-4A
- misalignsse: Misaligned SSE mode
- 3dnowprefetch: 3DNow prefetch instructions
- osvw: OS Visible Workaround
- ibs: Instruction Based Sampling
- xop: extended AVX instructions
- skinit: SKINIT/STGI instructions
- wdt: Watchdog timer
- lwp: Light Weight Profiling
- fma4: 4 operands MAC instructions
- tce: translation cache extension
- nodeid_msr: NodeId MSR
- tbm: trailing bit manipulations
- topoext: topology extensions CPUID leafs
- perfctr_core: core performance counter extensions
Auxiliary flags: Linux defined - For features scattered in various CPUID levels¶
- ida: Intel Dynamic Acceleration
- arat: Always Running APIC Timer
- cpb: AMD Core Performance Boost
- epb: IA32_ENERGY_PERF_BIAS support
- xsaveopt: Optimized Xsave
- pln: Intel Power Limit Notification
- pts: Intel Package Thermal Status
- dts: Digital Thermal Sensor
- hw_pstate: AMD HW-PState
Virtualization flags: Linux defined¶
- tpr_shadow: Intel TPR Shadow
- vnmi: Intel Virtual NMI
- flexpriority: Intel FlexPriority
- ept: Intel Extended Page Table
- vpid: Intel Virtual Processor ID
- npt: AMD Nested Page Table support
- lbrv: AMD LBR Virtualization support
- svm_lock: AMD SVM locking MSR
- nrip_save: AMD SVM next_rip save
- tsc_scale: AMD TSC scaling support
- vmcb_clean: AMD VMCB clean bits support
- flushbyasid: AMD flush-by-ASID support
- decodeassists: AMD Decode Assists support
- pausefilter: AMD filtered pause intercept
- pfthreshold: AMD pause filter threshold
Intel-defined CPU features, CPUID level 0x00000007:0 (ebx)
- fsgsbase: {RD/WR}{FS/GS}BASE instructions
- bmi1: 1st group bit manipulation extensions
- hle: Hardware Lock Elision
- avx2: AVX2 instructions
- smep: Supervisor Mode Execution Protection
- bmi2: 2nd group bit manipulation extensions
- erms: Enhanced REP MOVSB/STOSB
- invpcid: Invalidate Processor Context ID
- rtm: Restricted Transactional Memory
Resources¶
http://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean