Please find the answers below.

On 16/09/10 15:29, Samuel Thibault wrote:
Alexey Kardashevskiy, le Thu 16 Sep 2010 14:10:08 +1000, a écrit :
1. Old kernels (RHEL5.*) do expose some numa nodes via sysfs but there
is no information regarting cache (L1/L2/L3) and CPU threads. RHEL6 does
that. The proposed patch parses PowerPC's /proc/device-tree and add
necessary information into the topology.
Mmm, is that information not available on RHEL6 through the standard
/sys/devices/system/cpu/cpu*/cache too?

It is available on RHEL6 and not available on RHEL5. So the patched code looks to sysfs first and if there were no cache info found, goes to the device-tree. Workaround, yes.


Could you post a tgz output example of tests/linux/gather-topology.sh on
RHEL6 so we can include a testcase for your code?

Attached, both files.

Attachment: 12345.tar.gz
Description: GNU Zip compressed data

Found node node0
Found node node1
Found node node4
Found node node5
Found node node8
Found node node9
Found node node12
Found node node13
FOUND 8 nodes
0 0 0
CURRENTNODE 0: /sys/devices/system/node/node0/cpumap
1 1 1
CURRENTNODE 1: /sys/devices/system/node/node1/cpumap
2 4 4
CURRENTNODE 4: /sys/devices/system/node/node4/cpumap
3 5 5
CURRENTNODE 5: /sys/devices/system/node/node5/cpumap
4 8 8
CURRENTNODE 8: /sys/devices/system/node/node8/cpumap
5 9 9
CURRENTNODE 9: /sys/devices/system/node/node9/cpumap
6 12 12
CURRENTNODE 12: /sys/devices/system/node/node12/cpumap
7 13 13
CURRENTNODE 13: /sys/devices/system/node/node13/cpumap
Setting up misc levels
Machine (phys=0 total=516423680KB Backend=Linux OSName=Linux 
OSRelease=2.6.32-66.el6.ppc64 OSVersion="#1 SMP Wed Aug 18 01:12:05 EDT 2010" 
HostName=perfmr64c.ltc.austin.ibm.com Architecture=ppc64)
  Group0 #0 (total=124780544KB)
    NUMANode #0 (phys=0 local=58458112KB total=58458112KB)
      Socket #0
        L3Cache #0 (4096KB line=128)
          L2Cache #0 (256KB line=128)
            L1Cache #0 (32KB line=128)
              Core #0 (phys=0)
                PU #0 (phys=0)
                PU #1 (phys=1)
                PU #2 (phys=2)
                PU #3 (phys=3)
      Socket #1
        L3Cache #1 (4096KB line=128)
          L2Cache #1 (256KB line=128)
            L1Cache #1 (32KB line=128)
              Core #1 (phys=4)
                PU #4 (phys=4)
                PU #5 (phys=5)
                PU #6 (phys=6)
                PU #7 (phys=7)
      Socket #2
        L3Cache #2 (4096KB line=128)
          L2Cache #2 (256KB line=128)
            L1Cache #2 (32KB line=128)
              Core #2 (phys=8)
                PU #8 (phys=8)
                PU #9 (phys=9)
                PU #10 (phys=10)
                PU #11 (phys=11)
      Socket #3
        L3Cache #3 (4096KB line=128)
          L2Cache #3 (256KB line=128)
            L1Cache #3 (32KB line=128)
              Core #3 (phys=12)
                PU #12 (phys=12)
                PU #13 (phys=13)
                PU #14 (phys=14)
                PU #15 (phys=15)
      Socket #4
        L3Cache #4 (4096KB line=128)
          L2Cache #4 (256KB line=128)
            L1Cache #4 (32KB line=128)
              Core #4 (phys=16)
                PU #16 (phys=16)
                PU #17 (phys=17)
                PU #18 (phys=18)
                PU #19 (phys=19)
      Socket #5
        L3Cache #5 (4096KB line=128)
          L2Cache #5 (256KB line=128)
            L1Cache #5 (32KB line=128)
              Core #5 (phys=20)
                PU #20 (phys=20)
                PU #21 (phys=21)
                PU #22 (phys=22)
                PU #23 (phys=23)
      Socket #6
        L3Cache #6 (4096KB line=128)
          L2Cache #6 (256KB line=128)
            L1Cache #6 (32KB line=128)
              Core #6 (phys=24)
                PU #24 (phys=24)
                PU #25 (phys=25)
                PU #26 (phys=26)
                PU #27 (phys=27)
      Socket #7
        L3Cache #7 (4096KB line=128)
          L2Cache #7 (256KB line=128)
            L1Cache #7 (32KB line=128)
              Core #7 (phys=28)
                PU #28 (phys=28)
                PU #29 (phys=29)
                PU #30 (phys=30)
                PU #31 (phys=31)
    NUMANode #1 (phys=1 local=66322432KB total=66322432KB)
      Socket #8
        L3Cache #8 (4096KB line=128)
          L2Cache #8 (256KB line=128)
            L1Cache #8 (32KB line=128)
              Core #8 (phys=32)
                PU #32 (phys=32)
                PU #33 (phys=33)
                PU #34 (phys=34)
                PU #35 (phys=35)
      Socket #9
        L3Cache #9 (4096KB line=128)
          L2Cache #9 (256KB line=128)
            L1Cache #9 (32KB line=128)
              Core #9 (phys=36)
                PU #36 (phys=36)
                PU #37 (phys=37)
                PU #38 (phys=38)
                PU #39 (phys=39)
      Socket #10
        L3Cache #10 (4096KB line=128)
          L2Cache #10 (256KB line=128)
            L1Cache #10 (32KB line=128)
              Core #10 (phys=40)
                PU #40 (phys=40)
                PU #41 (phys=41)
                PU #42 (phys=42)
                PU #43 (phys=43)
      Socket #11
        L3Cache #11 (4096KB line=128)
          L2Cache #11 (256KB line=128)
            L1Cache #11 (32KB line=128)
              Core #11 (phys=44)
                PU #44 (phys=44)
                PU #45 (phys=45)
                PU #46 (phys=46)
                PU #47 (phys=47)
      Socket #12
        L3Cache #12 (4096KB line=128)
          L2Cache #12 (256KB line=128)
            L1Cache #12 (32KB line=128)
              Core #12 (phys=48)
                PU #48 (phys=48)
                PU #49 (phys=49)
                PU #50 (phys=50)
                PU #51 (phys=51)
      Socket #13
        L3Cache #13 (4096KB line=128)
          L2Cache #13 (256KB line=128)
            L1Cache #13 (32KB line=128)
              Core #13 (phys=52)
                PU #52 (phys=52)
                PU #53 (phys=53)
                PU #54 (phys=54)
                PU #55 (phys=55)
      Socket #14
        L3Cache #14 (4096KB line=128)
          L2Cache #14 (256KB line=128)
            L1Cache #14 (32KB line=128)
              Core #14 (phys=56)
                PU #56 (phys=56)
                PU #57 (phys=57)
                PU #58 (phys=58)
                PU #59 (phys=59)
      Socket #15
        L3Cache #15 (4096KB line=128)
          L2Cache #15 (256KB line=128)
            L1Cache #15 (32KB line=128)
              Core #15 (phys=60)
                PU #60 (phys=60)
                PU #61 (phys=61)
                PU #62 (phys=62)
                PU #63 (phys=63)
  Group0 #1 (total=133955584KB)
    NUMANode #2 (phys=4 local=66846720KB total=66846720KB)
      Socket #16
        L3Cache #16 (4096KB line=128)
          L2Cache #16 (256KB line=128)
            L1Cache #16 (32KB line=128)
              Core #16 (phys=64)
                PU #64 (phys=64)
                PU #65 (phys=65)
                PU #66 (phys=66)
                PU #67 (phys=67)
      Socket #17
        L3Cache #17 (4096KB line=128)
          L2Cache #17 (256KB line=128)
            L1Cache #17 (32KB line=128)
              Core #17 (phys=68)
                PU #68 (phys=68)
                PU #69 (phys=69)
                PU #70 (phys=70)
                PU #71 (phys=71)
      Socket #18
        L3Cache #18 (4096KB line=128)
          L2Cache #18 (256KB line=128)
            L1Cache #18 (32KB line=128)
              Core #18 (phys=72)
                PU #72 (phys=72)
                PU #73 (phys=73)
                PU #74 (phys=74)
                PU #75 (phys=75)
      Socket #19
        L3Cache #19 (4096KB line=128)
          L2Cache #19 (256KB line=128)
            L1Cache #19 (32KB line=128)
              Core #19 (phys=76)
                PU #76 (phys=76)
                PU #77 (phys=77)
                PU #78 (phys=78)
                PU #79 (phys=79)
      Socket #20
        L3Cache #20 (4096KB line=128)
          L2Cache #20 (256KB line=128)
            L1Cache #20 (32KB line=128)
              Core #20 (phys=80)
                PU #80 (phys=80)
                PU #81 (phys=81)
                PU #82 (phys=82)
                PU #83 (phys=83)
      Socket #21
        L3Cache #21 (4096KB line=128)
          L2Cache #21 (256KB line=128)
            L1Cache #21 (32KB line=128)
              Core #21 (phys=84)
                PU #84 (phys=84)
                PU #85 (phys=85)
                PU #86 (phys=86)
                PU #87 (phys=87)
      Socket #22
        L3Cache #22 (4096KB line=128)
          L2Cache #22 (256KB line=128)
            L1Cache #22 (32KB line=128)
              Core #22 (phys=88)
                PU #88 (phys=88)
                PU #89 (phys=89)
                PU #90 (phys=90)
                PU #91 (phys=91)
      Socket #23
        L3Cache #23 (4096KB line=128)
          L2Cache #23 (256KB line=128)
            L1Cache #23 (32KB line=128)
              Core #23 (phys=92)
                PU #92 (phys=92)
                PU #93 (phys=93)
                PU #94 (phys=94)
                PU #95 (phys=95)
    NUMANode #3 (phys=5 local=67108864KB total=67108864KB)
      Socket #24
        L3Cache #24 (4096KB line=128)
          L2Cache #24 (256KB line=128)
            L1Cache #24 (32KB line=128)
              Core #24 (phys=96)
                PU #96 (phys=96)
                PU #97 (phys=97)
                PU #98 (phys=98)
                PU #99 (phys=99)
      Socket #25
        L3Cache #25 (4096KB line=128)
          L2Cache #25 (256KB line=128)
            L1Cache #25 (32KB line=128)
              Core #25 (phys=100)
                PU #100 (phys=100)
                PU #101 (phys=101)
                PU #102 (phys=102)
                PU #103 (phys=103)
      Socket #26
        L3Cache #26 (4096KB line=128)
          L2Cache #26 (256KB line=128)
            L1Cache #26 (32KB line=128)
              Core #26 (phys=104)
                PU #104 (phys=104)
                PU #105 (phys=105)
                PU #106 (phys=106)
                PU #107 (phys=107)
      Socket #27
        L3Cache #27 (4096KB line=128)
          L2Cache #27 (256KB line=128)
            L1Cache #27 (32KB line=128)
              Core #27 (phys=108)
                PU #108 (phys=108)
                PU #109 (phys=109)
                PU #110 (phys=110)
                PU #111 (phys=111)
      Socket #28
        L3Cache #28 (4096KB line=128)
          L2Cache #28 (256KB line=128)
            L1Cache #28 (32KB line=128)
              Core #28 (phys=112)
                PU #112 (phys=112)
                PU #113 (phys=113)
                PU #114 (phys=114)
                PU #115 (phys=115)
      Socket #29
        L3Cache #29 (4096KB line=128)
          L2Cache #29 (256KB line=128)
            L1Cache #29 (32KB line=128)
              Core #29 (phys=116)
                PU #116 (phys=116)
                PU #117 (phys=117)
                PU #118 (phys=118)
                PU #119 (phys=119)
      Socket #30
        L3Cache #30 (4096KB line=128)
          L2Cache #30 (256KB line=128)
            L1Cache #30 (32KB line=128)
              Core #30 (phys=120)
                PU #120 (phys=120)
                PU #121 (phys=121)
                PU #122 (phys=122)
                PU #123 (phys=123)
      Socket #31
        L3Cache #31 (4096KB line=128)
          L2Cache #31 (256KB line=128)
            L1Cache #31 (32KB line=128)
              Core #31 (phys=124)
                PU #124 (phys=124)
                PU #125 (phys=125)
                PU #126 (phys=126)
                PU #127 (phys=127)
  Group0 #2 (total=133955584KB)
    NUMANode #4 (phys=8 local=66846720KB total=66846720KB)
      Socket #32
        L3Cache #32 (4096KB line=128)
          L2Cache #32 (256KB line=128)
            L1Cache #32 (32KB line=128)
              Core #32 (phys=128)
                PU #128 (phys=128)
                PU #129 (phys=129)
                PU #130 (phys=130)
                PU #131 (phys=131)
      Socket #33
        L3Cache #33 (4096KB line=128)
          L2Cache #33 (256KB line=128)
            L1Cache #33 (32KB line=128)
              Core #33 (phys=132)
                PU #132 (phys=132)
                PU #133 (phys=133)
                PU #134 (phys=134)
                PU #135 (phys=135)
      Socket #34
        L3Cache #34 (4096KB line=128)
          L2Cache #34 (256KB line=128)
            L1Cache #34 (32KB line=128)
              Core #34 (phys=136)
                PU #136 (phys=136)
                PU #137 (phys=137)
                PU #138 (phys=138)
                PU #139 (phys=139)
      Socket #35
        L3Cache #35 (4096KB line=128)
          L2Cache #35 (256KB line=128)
            L1Cache #35 (32KB line=128)
              Core #35 (phys=140)
                PU #140 (phys=140)
                PU #141 (phys=141)
                PU #142 (phys=142)
                PU #143 (phys=143)
      Socket #36
        L3Cache #36 (4096KB line=128)
          L2Cache #36 (256KB line=128)
            L1Cache #36 (32KB line=128)
              Core #36 (phys=144)
                PU #144 (phys=144)
                PU #145 (phys=145)
                PU #146 (phys=146)
                PU #147 (phys=147)
      Socket #37
        L3Cache #37 (4096KB line=128)
          L2Cache #37 (256KB line=128)
            L1Cache #37 (32KB line=128)
              Core #37 (phys=148)
                PU #148 (phys=148)
                PU #149 (phys=149)
                PU #150 (phys=150)
                PU #151 (phys=151)
      Socket #38
        L3Cache #38 (4096KB line=128)
          L2Cache #38 (256KB line=128)
            L1Cache #38 (32KB line=128)
              Core #38 (phys=152)
                PU #152 (phys=152)
                PU #153 (phys=153)
                PU #154 (phys=154)
                PU #155 (phys=155)
      Socket #39
        L3Cache #39 (4096KB line=128)
          L2Cache #39 (256KB line=128)
            L1Cache #39 (32KB line=128)
              Core #39 (phys=156)
                PU #156 (phys=156)
                PU #157 (phys=157)
                PU #158 (phys=158)
                PU #159 (phys=159)
    NUMANode #5 (phys=9 local=67108864KB total=67108864KB)
      Socket #40
        L3Cache #40 (4096KB line=128)
          L2Cache #40 (256KB line=128)
            L1Cache #40 (32KB line=128)
              Core #40 (phys=160)
                PU #160 (phys=160)
                PU #161 (phys=161)
                PU #162 (phys=162)
                PU #163 (phys=163)
      Socket #41
        L3Cache #41 (4096KB line=128)
          L2Cache #41 (256KB line=128)
            L1Cache #41 (32KB line=128)
              Core #41 (phys=164)
                PU #164 (phys=164)
                PU #165 (phys=165)
                PU #166 (phys=166)
                PU #167 (phys=167)
      Socket #42
        L3Cache #42 (4096KB line=128)
          L2Cache #42 (256KB line=128)
            L1Cache #42 (32KB line=128)
              Core #42 (phys=168)
                PU #168 (phys=168)
                PU #169 (phys=169)
                PU #170 (phys=170)
                PU #171 (phys=171)
      Socket #43
        L3Cache #43 (4096KB line=128)
          L2Cache #43 (256KB line=128)
            L1Cache #43 (32KB line=128)
              Core #43 (phys=172)
                PU #172 (phys=172)
                PU #173 (phys=173)
                PU #174 (phys=174)
                PU #175 (phys=175)
      Socket #44
        L3Cache #44 (4096KB line=128)
          L2Cache #44 (256KB line=128)
            L1Cache #44 (32KB line=128)
              Core #44 (phys=176)
                PU #176 (phys=176)
                PU #177 (phys=177)
                PU #178 (phys=178)
                PU #179 (phys=179)
      Socket #45
        L3Cache #45 (4096KB line=128)
          L2Cache #45 (256KB line=128)
            L1Cache #45 (32KB line=128)
              Core #45 (phys=180)
                PU #180 (phys=180)
                PU #181 (phys=181)
                PU #182 (phys=182)
                PU #183 (phys=183)
      Socket #46
        L3Cache #46 (4096KB line=128)
          L2Cache #46 (256KB line=128)
            L1Cache #46 (32KB line=128)
              Core #46 (phys=184)
                PU #184 (phys=184)
                PU #185 (phys=185)
                PU #186 (phys=186)
                PU #187 (phys=187)
      Socket #47
        L3Cache #47 (4096KB line=128)
          L2Cache #47 (256KB line=128)
            L1Cache #47 (32KB line=128)
              Core #47 (phys=188)
                PU #188 (phys=188)
                PU #189 (phys=189)
                PU #190 (phys=190)
                PU #191 (phys=191)
  Group0 #3 (total=123731968KB)
    NUMANode #6 (phys=12 local=66846720KB total=66846720KB)
      Socket #48
        L3Cache #48 (4096KB line=128)
          L2Cache #48 (256KB line=128)
            L1Cache #48 (32KB line=128)
              Core #48 (phys=192)
                PU #192 (phys=192)
                PU #193 (phys=193)
                PU #194 (phys=194)
                PU #195 (phys=195)
      Socket #49
        L3Cache #49 (4096KB line=128)
          L2Cache #49 (256KB line=128)
            L1Cache #49 (32KB line=128)
              Core #49 (phys=196)
                PU #196 (phys=196)
                PU #197 (phys=197)
                PU #198 (phys=198)
                PU #199 (phys=199)
      Socket #50
        L3Cache #50 (4096KB line=128)
          L2Cache #50 (256KB line=128)
            L1Cache #50 (32KB line=128)
              Core #50 (phys=200)
                PU #200 (phys=200)
                PU #201 (phys=201)
                PU #202 (phys=202)
                PU #203 (phys=203)
      Socket #51
        L3Cache #51 (4096KB line=128)
          L2Cache #51 (256KB line=128)
            L1Cache #51 (32KB line=128)
              Core #51 (phys=204)
                PU #204 (phys=204)
                PU #205 (phys=205)
                PU #206 (phys=206)
                PU #207 (phys=207)
      Socket #52
        L3Cache #52 (4096KB line=128)
          L2Cache #52 (256KB line=128)
            L1Cache #52 (32KB line=128)
              Core #52 (phys=208)
                PU #208 (phys=208)
                PU #209 (phys=209)
                PU #210 (phys=210)
                PU #211 (phys=211)
      Socket #53
        L3Cache #53 (4096KB line=128)
          L2Cache #53 (256KB line=128)
            L1Cache #53 (32KB line=128)
              Core #53 (phys=212)
                PU #212 (phys=212)
                PU #213 (phys=213)
                PU #214 (phys=214)
                PU #215 (phys=215)
      Socket #54
        L3Cache #54 (4096KB line=128)
          L2Cache #54 (256KB line=128)
            L1Cache #54 (32KB line=128)
              Core #54 (phys=216)
                PU #216 (phys=216)
                PU #217 (phys=217)
                PU #218 (phys=218)
                PU #219 (phys=219)
      Socket #55
        L3Cache #55 (4096KB line=128)
          L2Cache #55 (256KB line=128)
            L1Cache #55 (32KB line=128)
              Core #55 (phys=220)
                PU #220 (phys=220)
                PU #221 (phys=221)
                PU #222 (phys=222)
                PU #223 (phys=223)
    NUMANode #7 (phys=13 local=56885248KB total=56885248KB)
      Socket #56
        L3Cache #56 (4096KB line=128)
          L2Cache #56 (256KB line=128)
            L1Cache #56 (32KB line=128)
              Core #56 (phys=224)
                PU #224 (phys=224)
                PU #225 (phys=225)
                PU #226 (phys=226)
                PU #227 (phys=227)
      Socket #57
        L3Cache #57 (4096KB line=128)
          L2Cache #57 (256KB line=128)
            L1Cache #57 (32KB line=128)
              Core #57 (phys=228)
                PU #228 (phys=228)
                PU #229 (phys=229)
                PU #230 (phys=230)
                PU #231 (phys=231)
      Socket #58
        L3Cache #58 (4096KB line=128)
          L2Cache #58 (256KB line=128)
            L1Cache #58 (32KB line=128)
              Core #58 (phys=232)
                PU #232 (phys=232)
                PU #233 (phys=233)
                PU #234 (phys=234)
                PU #235 (phys=235)
      Socket #59
        L3Cache #59 (4096KB line=128)
          L2Cache #59 (256KB line=128)
            L1Cache #59 (32KB line=128)
              Core #59 (phys=236)
                PU #236 (phys=236)
                PU #237 (phys=237)
                PU #238 (phys=238)
                PU #239 (phys=239)
      Socket #60
        L3Cache #60 (4096KB line=128)
          L2Cache #60 (256KB line=128)
            L1Cache #60 (32KB line=128)
              Core #60 (phys=240)
                PU #240 (phys=240)
                PU #241 (phys=241)
                PU #242 (phys=242)
                PU #243 (phys=243)
      Socket #61
        L3Cache #61 (4096KB line=128)
          L2Cache #61 (256KB line=128)
            L1Cache #61 (32KB line=128)
              Core #61 (phys=244)
                PU #244 (phys=244)
                PU #245 (phys=245)
                PU #246 (phys=246)
                PU #247 (phys=247)
      Socket #62
        L3Cache #62 (4096KB line=128)
          L2Cache #62 (256KB line=128)
            L1Cache #62 (32KB line=128)
              Core #62 (phys=248)
                PU #248 (phys=248)
                PU #249 (phys=249)
                PU #250 (phys=250)
                PU #251 (phys=251)
      Socket #63
        L3Cache #63 (4096KB line=128)
          L2Cache #63 (256KB line=128)
            L1Cache #63 (32KB line=128)
              Core #63 (phys=252)
                PU #252 (phys=252)
                PU #253 (phys=253)
                PU #254 (phys=254)
                PU #255 (phys=255)
depth 0:        1 Machine (type #1)
 depth 1:       4 Groups (type #7)
  depth 2:      8 NUMANodes (type #2)
   depth 3:     64 Sockets (type #3)
    depth 4:    64 Caches (type #4)
     depth 5:   64 Caches (type #4)
      depth 6:  64 Caches (type #4)
       depth 7: 64 Cores (type #5)
        depth 8:        256 PUs (type #6)
Topology not from this system

Reply via email to