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.
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