if test "$BOCD" != 0 ; then
AC_DEFINE(SOCKNAL_BACKOFF, 1, [use tunable backoff TCP])
AC_MSG_RESULT(yes)
+ if grep rto_max $LINUX/include/linux/tcp.h|grep -q __u16; then
+ AC_DEFINE(SOCKNAL_BACKOFF_MS, 1, [tunable backoff TCP in ms])
+ fi
else
AC_MSG_RESULT([no (no kernel support)])
fi
AC_MSG_RESULT([disabled])
else
o2ib_found=false
+
for O2IBPATH in $O2IBPATHS; do
if test \( -f ${O2IBPATH}/include/rdma/rdma_cm.h -a \
-f ${O2IBPATH}/include/rdma/ib_cm.h -a \
break
fi
done
+
if ! $o2ib_found; then
AC_MSG_RESULT([no])
case $ENABLEO2IB in
*) AC_MSG_ERROR([internal error]);;
esac
else
+ # figure out whether the kernel has an infiniband stack
+ # configured
+ LB_LINUX_CONFIG_IM([INFINIBAND],[
+ CONFIG_INFINIBAND_MODULE_defined=true
+ ],[
+ CONFIG_INFINIBAND_MODULE_defined=false
+ ])
+ # at this point we know that the user either explicitly
+ # requested o2ib support or didn't explicitly disable it so
+ # make sure the kernel's CONFIG_INFINIBAND variable is set
+ # appropriately.
+ #
+ # possible error conditions are:
+ # 1) --with-o2ib[=yes] (implies in kernel since no path was
+ # given) and kernel not configured for IB
+ # 2) --with-o2ib=/path and kernel is configured for IB
+ #
+ if test "$O2IBPATH" = "$LINUX" -o "$O2IBPATH" = "$LINUX/drivers/infiniband"; then
+ # infiniband stack is in the kernel
+ if test $ENABLEO2IB -eq 1 -o $ENABLEO2IB -eq 2 && ! $CONFIG_INFINIBAND_MODULE_defined; then
+ # case #1
+ AC_MSG_ERROR([Kernel supplied OFED drivers are being requested however the kernel is NOT configured to build OFED modules. Please specify --with-o2ib=<path_to_ofed> or rebuild the kernel with Infiniband enabled.])
+ fi
+ else
+ # had to be a specified path with --with-o2ib=/path
+ if $CONFIG_INFINIBAND_MODULE_defined; then
+ # case #2
+ AC_MSG_ERROR([External OFED source has been specified but the kernel is configured to build OFED modules as well. Remove --with-o2ib from the configuration or rebuild the kernel without Infiniband.])
+ fi
+ fi
+ if $o2ib_found; then
O2IBCPPFLAGS="-I$O2IBPATH/include"
EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
EXTRA_KCFLAGS="$EXTRA_KCFLAGS $O2IBCPPFLAGS"
fi
fi
- # version checking is a hack and isn't reliable,
- # we need verify it with each new ofed release
-
- if grep -q ib_dma_map_single \
- ${O2IBPATH}/include/rdma/ib_verbs.h; then
- if grep -q comp_vector \
- ${O2IBPATH}/include/rdma/ib_verbs.h; then
- IBLND_OFED_VERSION="1025"
- else
- IBLND_OFED_VERSION="1020"
- fi
- else
- IBLND_OFED_VERSION="1010"
- fi
-
- AC_DEFINE_UNQUOTED(IBLND_OFED_VERSION, $IBLND_OFED_VERSION,
- [OFED version])
+ LB_LINUX_TRY_COMPILE([
+ #include <linux/version.h>
+ #include <linux/pci.h>
+ #if !HAVE_GFP_T
+ typedef int gfp_t;
+ #endif
+ #include <rdma/ib_verbs.h>
+ ],[
+ ib_dma_map_single(NULL, NULL, 0, 0);
+ return 0;
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_OFED_IB_DMA_MAP, 1,
+ [ib_dma_map_single defined])
+ ],[
+ AC_MSG_RESULT(NO)
+ ])
+
+ LB_LINUX_TRY_COMPILE([
+ #include <linux/version.h>
+ #include <linux/pci.h>
+ #if !HAVE_GFP_T
+ typedef int gfp_t;
+ #endif
+ #include <rdma/ib_verbs.h>
+ ],[
+ ib_create_cq(NULL, NULL, NULL, NULL, 0, 0);
+ return 0;
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_OFED_IB_COMP_VECTOR, 1,
+ [has completion vector])
+ ],[
+ AC_MSG_RESULT(NO)
+ ])
EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
fi
+ fi
fi
AC_SUBST(EXTRA_LNET_INCLUDE)