Bug 647949 - Wrong /sys/devices/system/cpu/cpu*/cache/index4/shared_cpu_map for L3 and L2 cache on HP Integrity BL870c box with 2 Intel Itanium2 9140N processors
Wrong /sys/devices/system/cpu/cpu*/cache/index4/shared_cpu_map for L3 and L2 ...
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel (Show other bugs)
Unspecified Unspecified
low Severity medium
: rc
: ---
Assigned To: Prarit Bhargava
Red Hat Kernel QE team
Depends On:
  Show dependency treegraph
Reported: 2010-10-29 18:49 EDT by Jiri Hladky
Modified: 2011-02-24 08:30 EST (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2011-02-24 08:30:49 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
/sys tree structure for 2.6.18-227.el5 on hp-bl870c-01.rhts.eng.bos.redhat.com box (19.58 KB, application/x-compressed-tar)
2010-10-29 18:49 EDT, Jiri Hladky
no flags Details

  None (edit)
Description Jiri Hladky 2010-10-29 18:49:44 EDT
Created attachment 456575 [details]
/sys tree structure for 2.6.18-227.el5 on hp-bl870c-01.rhts.eng.bos.redhat.com box

Description of problem:

We see wrong CPU topology reported by kernel on the following box:


It's HP Integrity BL870c box with two (dual socket) Intel Itanium2 9140N processors with Hyperthreading enabled. Check 

Each socket has L3 cache shared among all cores. However,
/sys/devices/system/cpu/cpu*/cache/index4/shared_cpu_map is empty. It means that kernel does not know that l3 cache is associated with 4 cores.

Same problem with L2 cache. 
/sys/devices/system/cpu/cpu0/cache/index3/shared_cpu_map is empty map. It's wrong.

Another problem is with size of L3 cache. The physical size of L3 is 18MB. Kernel reports only 9MB. It seems like kernel is confused with hyper-threading being enabled.

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

kernel 2.6.18-227.el5

How reproducible:

Install RHEL 5.6 and check
/sys/devices/system/cpu/cpu*/cache/index4/shared_cpu_map => should contain all cores on one Socket
/sys/devices/system/cpu/cpu0/cache/index3/shared_cpu_map => Should contain two cores (hyperthreading is enabled)
/sys/devices/system/cpu/cpu0/cache/index4/size  => should be 18MB

Actual results:
Empty list (all 0s)

Empty list (all 0s)

9MB (should be 18MB)

Additional info:
Comment 1 Brice Goglin 2010-10-30 04:32:09 EDT
Actually, I think the L3 cache in this Itanium is not shared between cores. There are two 9MB L3 caches, one per core, 18MB total. So index4/shared_cpu_map should contain 2 bits (2 threads of a core), not 4 bits (4 threads of 2 cores of a socket).
Comment 2 Jiri Hladky 2010-10-30 16:22:52 EDT
Hi Brice,

thanks for the correction. I have been searching Intel web site for the detailed specification but without success.Finally I have found this link:

There are indeed 2 9MB L3 caches, one per each core, 18MB total. index4/shared_cpu_map should contain 2 bits (2 threads of a core).

Comment 5 Prarit Bhargava 2011-02-24 08:30:49 EST
No customer has complained about this so I'm inclined to leave it as is.  AFAICT, this does not impact performance.


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