Open MPI logo

Hardware Locality Development Mailing List Archives

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

Subject: Re: [hwloc-devel] PPC64 problem with hwloc 1.1.1
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2011-02-22 18:20:22


On Feb 22, 2011, at 6:02 PM, Samuel Thibault wrote:

> Note the "/* TODO: how to report? */" comment in the code: we definitely
> _want_ to get users to see the warning and report it.

Ah, ok. Could we make that message a little more clear, then? Maybe something like this:

Index: src/topology.c
===================================================================
--- src/topology.c (revision 3200)
+++ src/topology.c (working copy)
@@ -48,7 +48,24 @@
   return HWLOC_API_VERSION;
 }
 
+static void hwloc_report_error(const char *msg, int line)
+{
+ static int reported = 0;
 
+ if (!reported) {
+ fprintf(stderr, "****************************************************************************\n");
+ fprintf(stderr, "* Hwloc has encountered what looks like an error from the operating system.\n");
+ fprintf(stderr, "*\n");
+ fprintf(stderr, "* %s\n", msg);
+ fprintf(stderr, "* Error occurred in topology.c line %d\n", line);
+ fprintf(stderr, "*\n");
+ fprintf(stderr, "* Please report this error message to the hwloc user's mailing list,\n");
+ fprintf(stderr, "* along with the output from the hwloc-gather-topology script.\n");
+ fprintf(stderr, "****************************************************************************\n");
+ reported = 1;
+ }
+}
+
 static void
 hwloc_topology_clear (struct hwloc_topology *topology);
 
@@ -704,7 +721,7 @@
       case HWLOC_OBJ_INCLUDED:
         if (container) {
           /* TODO: how to report? */
- fprintf(stderr, "object included in several different objects!\n");
+ hwloc_report_error("object included in several different objects!", __LINE__);
           /* We can't handle that. */
           return;
         }
@@ -713,7 +730,7 @@
         break;
       case HWLOC_OBJ_INTERSECTS:
         /* TODO: how to report? */
- fprintf(stderr, "object intersection without inclusion!\n");
+ hwloc_report_error("object intersection without inclusion!", __LINE__);
         /* We can't handle that. */
         return;
       case HWLOC_OBJ_CONTAINS:

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