1
1
openmpi/ompi/mca/btl/usnic/configure.m4
Dave Goodell 4875f48eaa usnic: enable UDP support
This commit decouples OMPI deployment from the version(s) of the lower
layers of the stack by probing for UDP support.

Verbs applications assume a 40-byte header (there is no current
mechanism for querying payload offset).  So to support a 42-byte UDP
header without causing existing applications like ibv_ud_pingpong or
older versions of OMPI to crash, we must inform libusnic_verbs that we
are aware of the nonstandard payload offset.  We do this by overriding
the `transport_type` field of the device to be 42 before calling
`ibv_open_device`.  If the library resets it to something else, then we
know the lower layers are UDP capable.  Otherwise we use the older
custom-L2 format.

This necessitated some minor ugliness in common_verbs, but it's as tidy
as Jeff and I know how to make it right now.

This commit only adds support for UDP headers and connectivity over the
same L2 network, it does not touch routing or interface pairing.

Reviewed-by: Jeff Squyres <jsquyres@cisco.com>

cmr=v1.7.5:ticket=trac:4253

This commit was SVN r30838.

The following Trac tickets were found above:
  Ticket 4253 --> https://svn.open-mpi.org/trac/ompi/ticket/4253
2014-02-26 07:44:35 +00:00

71 строка
2.4 KiB
Bash

# -*- shell-script -*-
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006 Sandia National Laboratories. All rights
# reserved.
# Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# MCA_btl_usnic_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_ompi_btl_usnic_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/usnic/Makefile])
OMPI_CHECK_OPENFABRICS([btl_usnic],
[btl_usnic_happy="yes"],
[btl_usnic_happy="no"])
# We only want to build on 64 bit Linux.
AS_IF([test "$btl_usnic_happy" = "yes"],
[AC_CHECK_SIZEOF([void *])
AC_MSG_CHECKING([for 64 bit Linux])
case $host_os in
*linux*)
AS_IF([test $ac_cv_sizeof_void_p -eq 8],
[btl_usnic_happy=yes],
[btl_usnic_happy=no])
;;
*)
btl_usnic_happy=no
;;
esac
AC_MSG_RESULT([$btl_usnic_happy])
]
)
AS_IF([test "$btl_usnic_happy" = "yes"],
[AC_CHECK_DECLS([IBV_EVENT_GID_CHANGE, ibv_event_type_str], [], [],
[#include <infiniband/verbs.h>
])
]
)
AS_IF([test "$btl_usnic_happy" = "yes"],
[btl_usnic_WRAPPER_EXTRA_LDFLAGS="$btl_usnic_LDFLAGS"
btl_usnic_WRAPPER_EXTRA_LIBS="$btl_usnic_LIBS"
$1],
[$2])
# Substitute in the things needed to build USNIC
AC_SUBST([btl_usnic_CPPFLAGS])
AC_SUBST([btl_usnic_CFLAGS])
AC_SUBST([btl_usnic_LDFLAGS])
AC_SUBST([btl_usnic_LIBS])
])dnl