Open MPI logo

Hardware Locality Development Mailing List Archives

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

Subject: [hwloc-devel] Patch for hwloc_obj_attr_snprintf
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2011-09-22 15:27:31


Ralph noticed the following when working on integrating hwloc deeply into OMPI, and suggests the attached patch. Does it look good to you guys?

-----

Something isn't right with hwloc_obj_attr_snprintf() when the object is a cache. I get this when printing the topology of my Mac:

        Detected Resources: Type: Machine Number of child objects: 1
                Name=NULL
                total=3145728KB
                Backend=Darwin
                OSName=Darwin
                OSRelease=10.8.0
                OSVersion="Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386"
                Architecture=i386
                Cpuset: 0x00000003
                Online: 0x00000003
                Allowed: 0x00000003
                Type: NUMANode Number of child objects: 1
                        Name=NULL
                        local=3145728KB
                        total=3145728KB
                        Cpuset: 0x00000003
                        Online: 0x00000003
                        Allowed: 0x00000003
                        Type: Socket Number of child objects: 1
                                Name=NULL
                                
                                Cpuset: 0x00000003
                                Online: 0x00000003
                                Allowed: 0x00000003
                                Type: L2Cache Number of child objects: 2
                                        Name=NULL
                                        4096KB
                                        line=64
                                        Cpuset: 0x00000003
                                        Online: 0x00000003
                                        Allowed: 0x00000003
                                        Type: L1Cache Number of child objects: 1
                                                Name=NULL
                                                32KB
                                                line=64
                                                Cpuset: 0x00000001
                                                Online: 0x00000001
                                                Allowed: 0x00000001
                                                Type: Core Number of child objects: 1
                                                        Name=NULL
                                                        
                                                        Cpuset: 0x00000001
                                                        Online: 0x00000001
                                                        Allowed: 0x00000001
                                                        Type: PU Number of child objects: 0
                                                                Name=NULL
                                                                
                                                                Cpuset: 0x00000001
                                                                Online: 0x00000001
                                                                Allowed: 0x00000001
                                        Type: L1Cache Number of child objects: 1
                                                Name=NULL
                                                32KB
                                                line=64
                                                Cpuset: 0x00000002
                                                Online: 0x00000002
                                                Allowed: 0x00000002
                                                Type: Core Number of child objects: 1
                                                        Name=NULL
                                                        
                                                        Cpuset: 0x00000002
                                                        Online: 0x00000002
                                                        Allowed: 0x00000002
                                                        Type: PU Number of child objects: 0
                                                                Name=NULL
                                                                
                                                                Cpuset: 0x00000002
                                                                Online: 0x00000002
                                                                Allowed: 0x00000002

Note that I get an empty line (it is non-NULL and has length > 0) when there are no attrs at all, but attrs is non-NULL (see the output for the cores). The output for the caches shows "32KB", but no title explaining what that value means. Likewise, I get a "line=64" output, which makes no sense.

The attached patch clarifies the output.

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/