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