Hi Brice, I have tested the patch and I have verified that
=================================== ./hwloc-calc --list numanode proc:32 ./hwloc-calc --list socket proc:63 ./hwloc-calc --list core proc:63 =================================== is working as expected. Thanks a lot! I have also tested depth argument for --list. (BTW, what has happened with hwloc-info? I cannot find it anymore. Is there some replacement?) =========================================== [root@intel-sunriseridge-02 utils]# hwloc-info (version 1.0.1!!!) depth 0: 1 Machine (type #1) depth 1: 3 NUMANodes (type #2) depth 2: 4 Sockets (type #3) depth 3: 4 Caches (type #4) depth 4: 32 Caches (type #4) depth 5: 32 Caches (type #4) depth 6: 32 Cores (type #5) depth 7: 64 PUs (type #6) Latest and patched version of hwloc: [root@intel-sunriseridge-02 utils]# ./hwloc-calc -v --list 4 proc:60 object #60 depth 7 below cpuset 0xffffffff,0xffffffff found adding 0x08000000 to 0x0 adding 0x08000000 to 0x0 30 [root@intel-sunriseridge-02 utils]# ./hwloc-calc -v --list 5 proc:60 object #60 depth 7 below cpuset 0xffffffff,0xffffffff found adding 0x08000000 to 0x0 adding 0x08000000 to 0x0 30 [root@intel-sunriseridge-02 utils]# ./hwloc-calc -v --list 6 proc:60 object #60 depth 7 below cpuset 0xffffffff,0xffffffff found adding 0x08000000 to 0x0 adding 0x08000000 to 0x0 30 ============================================= It works! :-) Just one question: I would expect Cache to be reported as well. At level 4-6 it reports Core #. Any comment on this? I have also tried --objects and it's behavior differ on different boxes: ************************************************************************** =============Intel(R) Core(TM)2 Duo CPU============= $./lstopo - Machine (1952MB) + Socket #0 + L2 #0 (6144KB) L1 #0 (32KB) + Core #0 + PU #0 (phys=0) L1 #1 (32KB) + Core #1 + PU #1 (phys=1) $./hwloc-calc --objects proc:0 L1Cache:0 $./hwloc-calc --objects core:0 L1Cache:0 $./hwloc-calc --objects socket:0 Machine:0 $./hwloc-calc --objects numanode:0 Machine:0 $./hwloc-calc --objects machine:0 Machine:0 ================== NEHALEM box ================= [root@intel-sunriseridge-02 utils]# ./lstopo - Machine (6042MB) NUMANode #0 (phys=0 1946MB) Socket #0 + L3 #0 (24MB) L2 #0 (256KB) + L1 #0 (32KB) + Core #0 PU #0 (phys=0) PU #1 (phys=32) L2 #1 (256KB) + L1 #1 (32KB) + Core #1 PU #2 (phys=4) PU #3 (phys=36) ........ (stripped) ./hwloc-calc --objects proc:0 PU:0 ./hwloc-calc --objects socket:0 Socket:0 ./hwloc-calc --objects node:0 NUMANode:0 ./hwloc-calc --objects machine:0 Machine:0 ============================================== ************************************************************************************* On Nehalem the output seems to be strange and I would say it's wrong. On the other hand, on Core2 Duo the output is right and useful. > > hwloc-calc --nodelist --physical proc:0 > > > > => gives nothing back on systems without NUMA. I would expect some > > sort of error message on stderr. > > > > hwloc-calc --nodelist --physical proc:120 > > > > =>gives nothing back. On that system, there is NUMA but only 64 > > processors. I would expect error message "proc:120 does not exist" > > reported on stderr. > > Those errors are only reported when -v is given (as well as other > verbose messages). You're right, we should always show them. Yes, you are right, -v works. Error handling (without -v) has been improved in case that NUMA does not exist at all. $hwloc-calc --list numanode --physical proc:0 unavailable list type NUMANode You will still get no error mesage when you specify wrong processor which does not exist. > > Brice BTW, you have added quite few new options:-) Any plans to release them? Thanks a lot! Jirka