Bug 673443 - /proc/cpuinfo does not announce several flags
Summary: /proc/cpuinfo does not announce several flags
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel
Version: 5.6
Hardware: x86_64
OS: Linux
unspecified
low
Target Milestone: rc
: ---
Assignee: Prarit Bhargava
QA Contact: Red Hat Kernel QE team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-01-28 09:00 UTC by Gerrit Slomma
Modified: 2013-11-04 16:52 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-11-04 16:52:38 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Gerrit Slomma 2011-01-28 09:00:01 UTC
Description of problem:

/proc/cpuinfo does not announce several flags

Version-Release number of selected component (if applicable):

2.6.18-238.1.1.el5
2.6.18-194.11.4.el5
2.6.18-194.el5

How reproducible:

everytime

Steps to Reproduce:
1. build program to query cpu-flags
2. cat /proc/cpuinfo
3. compare returned flags
  
Actual results:

> uname -r
2.6.18-194.11.4.el5

> grep "model name" /proc/cpuinfo
model name      : Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
model name      : Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
model name      : Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
model name      : Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz

> grep "flags" /proc/cpuinfo
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 syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
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 syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
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 syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
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 syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 ssse3 cx16 xtpr sse4_1 lahf_lm

> ./cpu_flags
SSE3:           true
PCLMULQD:       false
DTES64:         true
MONITOR/MWAIT:  true
SSE4_1:         true
SSE4_2:         false



> uname -r
2.6.18-238.1.1.el5

> grep "model name" /proc/cpuinfo
model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
model name      : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz

> /tmp/cpu_flags
SSE3:           true
PCLMULQD:       false
DTES64:         true
MONITOR/MWAIT:  true
SSE4_1:         true
SSE4_2:         false



> uname -r
2.6.18-194.el5

> grep "model name" /proc/cpuinfo
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz
model name      : Intel(R) Xeon(R) CPU           L5640  @ 2.27GHz

grep flags /proc/cpuinfo
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

/tmp/cpu_flags
SSE3:           true
PCLMULQD:       true
DTES64:         true
MONITOR/MWAIT:  true
SSE4_1:         true
SSE4_2:         true

On Xeon E5405.18-194.11.4.el5 DTES64 is supported but not reported via flags
On Xeon E5420.18-238.1.1.el5 DTES64 is supported but not reported via flags
On Xeon L5640.18-194.el5 DTES64 and PCLMULQD is supported but nor reported via flags

Expected results:

On Xeon E5405 at least DTES64 should be reported via flags
On Xeon E5420 at least DTES64 should be reported via flags
On Xeon L5640 at least DTES64 and PCLMULQD should be reported via flags

Additional info:

program-source

#include <stdio.h>

#define cpuid(func,ax,bx,cx,dx)\
        __asm__ __volatile__ ("cpuid":\
        "=a" (ax), "=b" (bx), "=c" (cx), "=d" (dx) : "a" (func));

int main(int argc, char *argv[]){
        int a,b,c,d;

        cpuid(1,a,b,c,d);
        printf("SSE3:\t\t%s\n", (c&(1<<0))?"true":"false");
        printf("PCLMULQD:\t%s\n", (c&(1<<1))?"true":"false");
        printf("DTES64:\t\t%s\n", (c&(1<<2))?"true":"false");
        printf("MONITOR/MWAIT:\t%s\n", (c&(1<<3))?"true":"false");
        printf("SSE4_1:\t\t%s\n", (c&(1<<19))?"true":"false");
        printf("SSE4_2:\t\t%s\n", (c&(1<<20))?"true":"false");

        return 0;
}

I did not check for all flags.

Comment 1 Prarit Bhargava 2013-11-04 16:52:38 UTC
This Bugzilla has been reviewed by Red Hat and is not planned on being
addressed in Red Hat Enterprise Linux 5, and therefore is being closed.
If this bug is critical to production systems, please contact your Red
Hat support representative and provide a sufficient business justification
in order to re-open it.


Note You need to log in before you can comment on or make changes to this bug.