On Oct 16, 2008, at 1:39 PM, Aleksej Saushev wrote:

[asau.local:04648] opal_ifinit: ioctl(SIOCGIFFLAGS) failed with errno=6
[snip]

Why don't you use strerror(3) to print errno value explanation?

I don't know; whoever wrote that just chose not to there.  Shrug.

From <sys/errno.h>:
#define ENXIO           6               /* Device not configured */

It seems that I have to debug network interface probing,
how should I use *_output subroutines so that they do print?

opal_output(0, "...printf-like stuff here...", ...printf varargs...);

Should always output. Stream 0 is our "unconditional" stream; it goes to stderr. You'll see opal_output(0) output from mpirun and MPI apps; we usually close the stderr from orted's by default.

Make sure that you re-build and re-install OMPI properly or your output won't show up. You can either do a top-level "make install" (which might be lengthy, depending on the speed of your system(s), and especially if you're iteratively editing opal/util/ if.c), or you can do the following:

cd top-ompi-src-dir
cd opal
make
make install-am

If you built OMPI with shared libraries, that should be sufficient to recompile opal/util/if.c, rebuild libopen-pal.so, and re-install it. Or, if you *really* want to streamline, you can do something like this:

cd top-ompi-src-dir
cd opal
cd util && make && cd .. && make install-am

And then repeat that last step as necessary (this is the kind of thing I do when I am editing a single .c file in one of OMPI's libs).

--
Jeff Squyres
Cisco Systems

Reply via email to