Open MPI logo

Hardware Locality Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Development mailing list

Subject: Re: [hwloc-devel] signed / unsigned
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-12-16 21:51:38


On Dec 16, 2009, at 9:03 PM, Jeff Squyres wrote:

> Ok, done. Please review:
>
> https://svn.open-mpi.org/trac/hwloc/changeset/1475

I definitely broke something. :-(

>From my embedding test, I make a trivial app that does the following:

----
    mytest_hwloc_topology_init(&topology);
    mytest_hwloc_topology_load(topology);
    depth = mytest_hwloc_topology_get_depth(topology);
    printf("Max depth: %u\n", depth);
-----
When I run it, it produces an assertion failure:
----
Assertion failed: (i = (unsigned) hwloc_get_type_depth(topology, obj->type) || HWLOC_TYPE_DEPTH_MULTIPLE == hwloc_get_type_depth(topology, obj->type)), function mytest_hwloc_topology_check, file topology.c, line 1764.
Abort
-----
Here's the full output:
-----
[21:47] beezle:~/svn/hwloc/tests/embedded % ./main 
2 procs
1 packages
2 threads per package
package 0 has cpuset 0x00000003
2 cores per package
core 0 has cpuset 0x00000001
core 1 has cpuset 0x00000002
caches 2(3932160kB) 1(32kB) 2(3072kB)
2 cache levels
node 0 has cpuset 0x00000003
L1cache 0 has cpuset 0x00000001
L1cache 1 has cpuset 0x00000002
L2cache 0 has cpuset 0x00000003
 * CPU cpusets *
cpu 0 (os 0) has cpuset 0x00000001
cpu 1 (os 1) has cpuset 0x00000002
System(0KB HP=0*0kB  ) 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff
  NUMANode#0(3840MB) 0x00000003
    Socket#0 0x00000003
      L2Cache#0(3072KB) 0x00000003
        L1Cache#0(32KB) 0x00000001
          Core#0 0x00000001
            P#0 0x00000001
        L1Cache#1(32KB) 0x00000002
          Core#1 0x00000002
            P#1 0x00000002
Computing the system cpuset by ORing all Proc objects
-> 0x00000003
Adding it to the complete cpuset
0x0 -> 0x00000003
Limiting online cpuset to the complete cpuset
0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff -> 0x00000003
Limiting allowed cpuset to the complete cpuset
0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff -> 0x00000003
Removing unauthorized cpuset from system cpuset
0x00000003 -> 0x00000003
Removing offline cpuset from system cpuset
0x00000003 -> 0x00000003
Removing disallowed memory according to nodeset 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff
Applying the system cpuset to all objects
System(0KB HP=0*0kB  ) 0x00000003
  NUMANode#0(3840MB) 0x00000003
    Socket#0 0x00000003
      L2Cache#0(3072KB) 0x00000003
        L1Cache#0(32KB) 0x00000001
          Core#0 0x00000001
            P#0 0x00000001
        L1Cache#1(32KB) 0x00000002
          Core#1 0x00000002
            P#1 0x00000002
Removing ignored objects
System(0KB HP=0*0kB  ) 0x00000003
  NUMANode#0(3840MB) 0x00000003
    Socket#0 0x00000003
      L2Cache#0(3072KB) 0x00000003
        L1Cache#0(32KB) 0x00000001
          Core#0 0x00000001
            P#0 0x00000001
        L1Cache#1(32KB) 0x00000002
          Core#1 0x00000002
            P#1 0x00000002
Removing empty objects except numa nodes and PCI devices
System(0KB HP=0*0kB  ) 0x00000003
  NUMANode#0(3840MB) 0x00000003
    Socket#0 0x00000003
      L2Cache#0(3072KB) 0x00000003
        L1Cache#0(32KB) 0x00000001
          Core#0 0x00000001
            P#0 0x00000001
        L1Cache#1(32KB) 0x00000002
          Core#1 0x00000002
            P#1 0x00000002
Removing objects whose type has HWLOC_IGNORE_TYPE_KEEP_STRUCTURE and have only one child or are the only child
System(0KB HP=0*0kB  ) 0x00000003
  NUMANode#0(3840MB) 0x00000003
    Socket#0 0x00000003
      L2Cache#0(3072KB) 0x00000003
        L1Cache#0(32KB) 0x00000001
          Core#0 0x00000001
            P#0 0x00000001
        L1Cache#1(32KB) 0x00000002
          Core#1 0x00000002
            P#1 0x00000002
Ok, finished tweaking, now connect
System(0KB HP=0*0kB  ) 0x00000003 arity 1
  NUMANode#0(3840MB) 0x00000003 arity 1
    Socket#0 0x00000003 arity 1
      L2Cache#0(3072KB) 0x00000003 arity 2
        L1Cache#0(32KB) 0x00000001 arity 1
          Core#0 0x00000001 arity 1
            P#0 0x00000001
        L1Cache#1(32KB) 0x00000002 arity 1
          Core#1 0x00000002 arity 1
            P#1 0x00000002
--- NUMANode level has number 1
--- Socket level has number 2
--- Cache level depth 2 has number 3
--- Cache level depth 1 has number 4
--- Core level has number 5
--- Proc level has number 6
Assertion failed: (i = (unsigned) hwloc_get_type_depth(topology, obj->type) || HWLOC_TYPE_DEPTH_MULTIPLE == hwloc_get_type_depth(topology, obj->type)), function mytest_hwloc_topology_check, file topology.c, line 1764.
Abort
------
-- 
Jeff Squyres
jsquyres_at_[hidden]