2

CentOS 6.9 showed the following CPU flags in /proc/cpuinfo:

fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up rep_good unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch arat xsaveopt fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx

I reinstalled CentOS 7.5 on the same machine, and got

fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap xsaveopt xsavec xgetbv1 arat

Why they are different?

2

You’re running a newer kernel (3.10 with many patches on CentOS 7, compared to 2.6.32 with many patches on CentOS 6), which has slightly different flags — somewhat confusingly, the flags listed in /proc/cpuinfo don’t only represent CPU features; even if they did, a given kernel can only know about features which existed when it was written, so an older kernel running on a newer CPU will miss features which the CPU supports. The differences correspond to kernel features which were added or removed, or CPU features which didn’t exist when your old kernel was written, and which your newer kernel now knows about.

You’ve “lost” the following flags:

  • up (an SMP kernel was booted on a single processor)
  • unfair_spinlock (unfair paravirtualised spinlocks)

and gained the following:

  • nopl (the CPU supports NOPL instructions; this is a synthetic flag added in 2.6.27, I’m not sure why your CentOS 6 kernel didn’t show it)
  • eagerfpu (non-lazy FPU restore; added in 3.6, removed in 4.8)
  • mpx (memory protection extension; detected since 3.13)
  • smap (supervisor mode access prevention; detected since 3.6)
  • xsavec (one of the extended state flags; detected since 3.15)
  • xgetbv1 (another of the extended state flags; detected since 3.15)

See also What do the flags in /proc/cpuinfo mean?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.