Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] openmpi-1.7.2 fails to use the RDMACM CPC
From: Steve Wise (swise_at_[hidden])
Date: 2013-08-20 11:06:14


So is this the correct fix?

[root_at_r9 ompi-trunk]# svn diff
Index: ompi/mca/btl/openib/btl_openib_component.c
===================================================================
--- ompi/mca/btl/openib/btl_openib_component.c (revision 29050)
+++ ompi/mca/btl/openib/btl_openib_component.c (working copy)
@@ -716,7 +716,7 @@
             return OMPI_ERR_NOT_FOUND;
         }

-#if defined(HAVE_IBV_LINK_LAYER_ETHERNET)
+#if defined(HAVE_DECL_IBV_LINK_LAYER_ETHERNET)
         if (IBV_LINK_LAYER_ETHERNET == ib_port_attr->link_layer) {
             subnet_id = mca_btl_openib_get_ip_subnet_id(device->ib_dev,
                                                            port_num);
Index: ompi/mca/btl/openib/btl_openib.c
===================================================================
--- ompi/mca/btl/openib/btl_openib.c (revision 29050)
+++ ompi/mca/btl/openib/btl_openib.c (working copy)
@@ -444,7 +444,7 @@
 #ifdef HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE
     switch(openib_btl->device->ib_dev->transport_type) {
         case IBV_TRANSPORT_IB:
-#if defined(HAVE_IBV_LINK_LAYER_ETHERNET)
+#if defined(HAVE_DECL_IBV_LINK_LAYER_ETHERNET)
             switch(openib_btl->ib_port_attr.link_layer) {
                 case IBV_LINK_LAYER_ETHERNET:
                     return MCA_BTL_OPENIB_TRANSPORT_RDMAOE;
Index: ompi/mca/btl/openib/connect/btl_openib_connect_udcm.c
===================================================================
--- ompi/mca/btl/openib/connect/btl_openib_connect_udcm.c (revision 29050)
+++ ompi/mca/btl/openib/connect/btl_openib_connect_udcm.c (working copy)
@@ -389,7 +389,7 @@
        /* If we do not have struct ibv_device.transport_device, then
           we're in an old version of OFED that is IB only (i.e., no
           iWarp), so we can safely assume that we can use this CPC. */
-#if defined(HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE) && defined(HAVE_IBV_LINK_LAYER_ETHERNET)
+#if defined(HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE) && defined(HAVE_DECL_IBV_LINK_LAYER_ETHERNET)
        if (BTL_OPENIB_CONNECT_BASE_CHECK_IF_NOT_IB(btl)) {
            BTL_VERBOSE(("UD CPC only supported on InfiniBand; skipped on %s:%d",
                         ibv_get_device_name(btl->device->ib_dev),
Index: ompi/mca/btl/openib/connect/btl_openib_connect_oob.c
===================================================================
--- ompi/mca/btl/openib/connect/btl_openib_connect_oob.c (revision 29050)
+++ ompi/mca/btl/openib/connect/btl_openib_connect_oob.c (working copy)
@@ -127,7 +127,7 @@
        IB (this CPC will not work with iWarp). If we do not have the
        transport_type member, then we must be < OFED v1.2, and
        therefore we must be IB. */
-#if defined(HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE) && defined(HAVE_IBV_LINK_LAYER_ETHERNET)
+#if defined(HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE) && defined(HAVE_DECL_IBV_LINK_LAYER_ETHERNET)
     if (BTL_OPENIB_CONNECT_BASE_CHECK_IF_NOT_IB(btl)) {
         opal_output_verbose(5, ompi_btl_base_framework.framework_output,
                             "openib BTL: oob CPC only supported on InfiniBand; skipped on %s:%d",
Index: ompi/mca/common/verbs/common_verbs_find_ports.c
===================================================================
--- ompi/mca/common/verbs/common_verbs_find_ports.c (revision 29050)
+++ ompi/mca/common/verbs/common_verbs_find_ports.c (working copy)
@@ -170,7 +170,7 @@
     }
 }

-#if defined(HAVE_IBV_LINK_LAYER_ETHERNET)
+#if defined(HAVE_DECL_IBV_LINK_LAYER_ETHERNET)
 static const char *link_layer_to_str(int link_type)
 {
     switch(link_type) {
@@ -417,7 +417,7 @@
                 /* If they specified neither link layer, then we want this port */
                 want = true;
             }
-#if defined(HAVE_IBV_LINK_LAYER_ETHERNET)
+#if defined(HAVE_DECL_IBV_LINK_LAYER_ETHERNET)
             else if (flags & OMPI_COMMON_VERBS_FLAGS_LINK_LAYER_IB) {
                 if (IBV_LINK_LAYER_INFINIBAND == port_attr.link_layer) {
                     want = true;

> -----Original Message-----
> From: devel [mailto:devel-bounces_at_[hidden]] On Behalf Of Steve Wise
> Sent: Tuesday, August 20, 2013 9:25 AM
> To: 'Open MPI Developers'; 'Jeff Squyres (jsquyres)'
> Cc: 'Indranil Choudhury'
> Subject: Re: [OMPI devel] openmpi-1.7.2 fails to use the RDMACM CPC
>
>
> Ah:
>
> Here's the config.log:
>
> configure:133950: checking whether IBV_LINK_LAYER_ETHERNET is declared
> configure:133950: gcc -std=gnu99 -c -g -Wall -Wundef -Wno-long-long -Wsign-compare
> -Wmissing-prototypes -Wstrict-prototypes -Wcomment -pedantic -Werror-implicit-function-declaration
> -finline-functions -fno-strict-aliasing -pthread
> -I/usr/local/src/ompi-trunk/opal/mca/hwloc/hwloc152/hwloc/include
> -I/usr/local/src/ompi-trunk/opal/mca/event/libevent2021/libevent
> -I/usr/local/src/ompi-trunk/opal/mca/event/libevent2021/libevent/include conftest.c >&5
> conftest.c:611: warning: function declaration isn't a prototype
> configure:133950: $? = 0
> configure:133950: result: yes
>
> And I see it in opal_config.h:
>
> /* Define to 1 if you have the declaration of `IBV_LINK_LAYER_ETHERNET', and
> to 0 if you don't. */
> #define HAVE_DECL_IBV_LINK_LAYER_ETHERNET 1
>
> Note the #define is HAVE_DECL_IBV_LINK_LAYER_ETHERNET but the code is checking for
> HAVE_IBV_LINK_LAYER_ETHERNET!
>
> No _DECL_...
>
>
>
> > -----Original Message-----
> > From: devel [mailto:devel-bounces_at_[hidden]] On Behalf Of Steve Wise
> > Sent: Tuesday, August 20, 2013 9:07 AM
> > To: 'Jeff Squyres (jsquyres)'
> > Cc: 'Open MPI Developers'; 'Indranil Choudhury'
> > Subject: Re: [OMPI devel] openmpi-1.7.2 fails to use the RDMACM CPC
> >
> >
> >
> > > -----Original Message-----
> > > From: Jeff Squyres (jsquyres) [mailto:jsquyres_at_[hidden]]
> > > Sent: Tuesday, August 20, 2013 8:59 AM
> > > To: Steve Wise
> > > Cc: Open MPI Developers; Indranil Choudhury
> > > Subject: Re: [OMPI devel] openmpi-1.7.2 fails to use the RDMACM CPC
> > >
> > > On Aug 20, 2013, at 9:51 AM, Steve Wise <swise_at_[hidden]> wrote:
> > >
> > > > I checked in the correct fix,
> > >
> > > Er, no. Please re-read my email -- your fix was incorrect (you're overriding the output of an
> AC
> > macro).
> > > :-)
> > >
> >
> > What is the correct fix then? I've never worked with any of this AC stuff...
> >
> > With the existing code (prior to my broken fix), HAVE_IBV_LINK_LAYER_ETHERNET does not get
> defined.
> > Yet the enum and the link_type field are in verbs.h...
> >
> > Thanks.
> >
> >
> > _______________________________________________
> > devel mailing list
> > devel_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel