AC_DEFUN([LN_CONFIG_MAX_PAYLOAD],
[AC_MSG_CHECKING([for non-default maximum LNET payload])
AC_ARG_WITH([max-payload-mb],
- AC_HELP_STRING([--with-max-payload-mb=MBytes],
+ AC_HELP_STRING([--with-max-payload-mb=MBytes],
[set maximum lnet payload in MBytes]),
[
AC_MSG_RESULT([$with_max_payload_mb])
AC_DEFINE(LIBCFS_DEBUG, 1, [enable libcfs LASSERT, LASSERTF])
fi
])
-
+
#
# LN_CONFIG_AFFINITY
#
cpumask_t m;
#else
unsigned long m;
- #endif
+ #endif
set_cpus_allowed(&t, m);
],[
AC_DEFINE(CPU_AFFINITY, 1, [kernel has cpu affinity support])
AC_DEFUN([LN_CONFIG_PORTALS],
[AC_MSG_CHECKING([for portals])
AC_ARG_WITH([portals],
- AC_HELP_STRING([--with-portals=path],
+ AC_HELP_STRING([--with-portals=path],
[set path to portals]),
[
case $with_portals in
ENABLEPORTALS=1
;;
esac
-
], [
ENABLEPORTALS=0
])
AC_DEFUN([LN_CONFIG_O2IB],[
AC_MSG_CHECKING([whether to enable OpenIB gen2 support])
# set default
-O2IBPATH="$LINUX/drivers/infiniband"
AC_ARG_WITH([o2ib],
AC_HELP_STRING([--with-o2ib=path],
[build o2iblnd against path]),
[
case $with_o2ib in
- yes) ENABLEO2IB=2
+ yes) O2IBPATHS="$LINUX $LINUX/drivers/infiniband"
+ ENABLEO2IB=2
;;
no) ENABLEO2IB=0
;;
- *) O2IBPATH=$with_o2ib
+ *) O2IBPATHS=$with_o2ib
ENABLEO2IB=3
;;
esac
],[
+ O2IBPATHS="$LINUX $LINUX/drivers/infiniband"
ENABLEO2IB=1
])
if test $ENABLEO2IB -eq 0; then
AC_MSG_RESULT([disabled])
-elif test ! \( -f ${O2IBPATH}/include/rdma/rdma_cm.h -a \
- -f ${O2IBPATH}/include/rdma/ib_cm.h -a\
- -f ${O2IBPATH}/include/rdma/ib_verbs.h -a\
- -f ${O2IBPATH}/include/rdma/ib_fmr_pool.h \); then
- AC_MSG_RESULT([no])
- case $ENABLEO2IB in
- 1) ;;
- 2) AC_MSG_ERROR([kernel OpenIB gen2 headers not present]);;
- 3) AC_MSG_ERROR([bad --with-o2ib path]);;
- *) AC_MSG_ERROR([internal error]);;
- esac
else
- O2IBCPPFLAGS="-I$O2IBPATH/include"
- EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
- EXTRA_KCFLAGS="$EXTRA_KCFLAGS $O2IBCPPFLAGS"
- EXTRA_LNET_INCLUDE="$O2IBCPPFLAGS $EXTRA_LNET_INCLUDE"
- LB_LINUX_TRY_COMPILE([
- #include <linux/version.h>
- #include <linux/pci.h>
- #if !HAVE_GFP_T
- typedef int gfp_t;
- #endif
- #include <rdma/rdma_cm.h>
- #include <rdma/ib_cm.h>
- #include <rdma/ib_verbs.h>
- #include <rdma/ib_fmr_pool.h>
- ],[
- struct rdma_cm_id *cm_id;
- struct rdma_conn_param conn_param;
- struct ib_device_attr device_attr;
- struct ib_qp_attr qp_attr;
- struct ib_pool_fmr pool_fmr;
- enum ib_cm_rej_reason rej_reason;
-
- cm_id = rdma_create_id(NULL, NULL, RDMA_PS_TCP);
- return PTR_ERR(cm_id);
- ],[
- AC_MSG_RESULT([yes])
- O2IBLND="o2iblnd"
- ],[
+ 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 \
+ -f ${O2IBPATH}/include/rdma/ib_verbs.h -a \
+ -f ${O2IBPATH}/include/rdma/ib_fmr_pool.h \); then
+ o2ib_found=true
+ break
+ fi
+ done
+ if ! $o2ib_found; then
AC_MSG_RESULT([no])
case $ENABLEO2IB in
- 1) ;;
- 2) AC_MSG_ERROR([can't compile with kernel OpenIB gen2 headers]);;
- 3) AC_MSG_ERROR([can't compile with OpenIB gen2 headers under $O2IBPATH]);;
- *) AC_MSG_ERROR([internal error]);;
+ 1) ;;
+ 2) AC_MSG_ERROR([kernel OpenIB gen2 headers not present]);;
+ 3) AC_MSG_ERROR([bad --with-o2ib path]);;
+ *) AC_MSG_ERROR([internal error]);;
esac
- O2IBLND=""
- O2IBCPPFLAGS=""
- ])
+ else
+ O2IBCPPFLAGS="-I$O2IBPATH/include"
+ EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
+ EXTRA_KCFLAGS="$EXTRA_KCFLAGS $O2IBCPPFLAGS"
+ EXTRA_LNET_INCLUDE="$O2IBCPPFLAGS $EXTRA_LNET_INCLUDE"
+ LB_LINUX_TRY_COMPILE([
+ #include <linux/version.h>
+ #include <linux/pci.h>
+ #if !HAVE_GFP_T
+ typedef int gfp_t;
+ #endif
+ #include <rdma/rdma_cm.h>
+ #include <rdma/ib_cm.h>
+ #include <rdma/ib_verbs.h>
+ #include <rdma/ib_fmr_pool.h>
+ ],[
+ struct rdma_cm_id *cm_id;
+ struct rdma_conn_param conn_param;
+ struct ib_device_attr device_attr;
+ struct ib_qp_attr qp_attr;
+ struct ib_pool_fmr pool_fmr;
+ enum ib_cm_rej_reason rej_reason;
+
+ cm_id = rdma_create_id(NULL, NULL, RDMA_PS_TCP);
+ return PTR_ERR(cm_id);
+ ],[
+ AC_MSG_RESULT([yes])
+ O2IBLND="o2iblnd"
+ ],[
+ AC_MSG_RESULT([no])
+ case $ENABLEO2IB in
+ 1) ;;
+ 2) AC_MSG_ERROR([can't compile with kernel OpenIB gen2 headers]);;
+ 3) AC_MSG_ERROR([can't compile with OpenIB gen2 headers under $O2IBPATH]);;
+ *) AC_MSG_ERROR([internal error]);;
+ esac
+ O2IBLND=""
+ O2IBCPPFLAGS=""
+ ])
-# version checking is a hack and isn't reliable, we need verify it
-# with each new ofed release
+ # version checking is a hack and isn't reliable,
+ # we need verify it with each new ofed release
- IB_DMA_MAP="`grep -c ib_dma_map_single ${O2IBPATH}/include/rdma/ib_verbs.h`"
- if test "$IB_DMA_MAP" != 0 ; then
- IB_COMP_VECT="`grep -c comp_vector ${O2IBPATH}/include/rdma/ib_verbs.h`"
- if test "$IB_COMP_VECT" != 0 ; then
- IBLND_OFED_VERSION="1025"
+ 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="1020"
+ IBLND_OFED_VERSION="1010"
fi
- else
- IBLND_OFED_VERSION="1010"
- fi
- AC_DEFINE_UNQUOTED(IBLND_OFED_VERSION, $IBLND_OFED_VERSION,
- [OFED version])
+ AC_DEFINE_UNQUOTED(IBLND_OFED_VERSION, $IBLND_OFED_VERSION,
+ [OFED version])
- EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
+ EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
+ fi
fi
AC_SUBST(EXTRA_LNET_INCLUDE)
*) AC_MSG_ERROR([internal error]);;
esac
else
- case $ENABLEOPENIB in
+ case $ENABLEOPENIB in
1|2) OPENIBCPPFLAGS="-I$OPENIBPATH/include -DIN_TREE_BUILD";;
3) OPENIBCPPFLAGS="-I$OPENIBPATH/include";;
*) AC_MSG_RESULT([no])
#include <ts_ib_cm.h>
#include <ts_ib_sa_client.h>
],[
- struct ib_device_properties dev_props;
+ struct ib_device_properties dev_props;
struct ib_cm_active_param cm_active_params;
tTS_IB_CLIENT_QUERY_TID tid;
int enum1 = IB_QP_ATTRIBUTE_STATE;
#include <ts_ib_cm.h>
#include <ts_ib_sa_client.h>
],[
- struct ib_device_properties dev_props;
+ struct ib_device_properties dev_props;
struct ib_cm_active_param cm_active_params;
tTS_IB_CLIENT_QUERY_TID tid;
int enum1 = TS_IB_QP_ATTRIBUTE_STATE;
EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
EXTRA_KCFLAGS="$EXTRA_KCFLAGS $VIBCPPFLAGS"
LB_LINUX_TRY_COMPILE([
- #include <linux/list.h>
+ #include <linux/list.h>
#include <asm/byteorder.h>
#ifdef __BIG_ENDIAN
# define CPU_BE 1
# define CPU_BE 0
# define CPU_LE 1
#endif
- #include <vverbs.h>
+ #include <vverbs.h>
#include <ib-cm.h>
#include <ibat.h>
],[
EXTRA_KCFLAGS="$EXTRA_KCFLAGS $VIBCPPFLAGS"
AC_MSG_CHECKING([if Voltaire still uses void * sg addresses])
LB_LINUX_TRY_COMPILE([
- #include <linux/list.h>
+ #include <linux/list.h>
#include <asm/byteorder.h>
#ifdef __BIG_ENDIAN
# define CPU_BE 1
# define CPU_BE 0
# define CPU_LE 1
#endif
- #include <vverbs.h>
+ #include <vverbs.h>
#include <ib-cm.h>
#include <ibat.h>
],[
])
# 2.6.19 API changes
-# kmem_cache_destroy(cachep) return void instead of
+# kmem_cache_destroy(cachep) return void instead of
# int
AC_DEFUN([LN_KMEM_CACHE_DESTROY_INT],
[AC_MSG_CHECKING([kmem_cache_destroy(cachep) return int])
[AC_MSG_CHECKING([panic_notifier_list is atomic])
LB_LINUX_TRY_COMPILE([
#include <linux/notifier.h>
- #include <linux/kernel.h>
+ #include <linux/kernel.h>
],[
struct atomic_notifier_head panic_notifier_list;
],[
])
])
-# 2.6.20 API change INIT_WORK use 2 args and not
+# 2.6.20 API change INIT_WORK use 2 args and not
# store data inside
AC_DEFUN([LN_3ARGS_INIT_WORK],
[AC_MSG_CHECKING([check INIT_WORK want 3 args])
])
])
+# asm/segment.h does not exist on all architectures.
+# e.g. the file is empty for ia64 and does not exist for PPC.
+AC_DEFUN([LC_SEGMENT_H],
+ [LB_CHECK_FILE([$LINUX/include/asm/segment.h],
+ [AC_MSG_CHECKING([if asm/segment.h is present])
+ LB_LINUX_TRY_COMPILE([#include <asm/segment.h>], [],
+ [AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_SEGMENT_H, 1,
+ [asm/segment.h exists])],
+ [AC_MSG_RESULT([no])])])
+]) # LC_SEGMENT_H
+
#
# LN_PROG_LINUX
#
LN_KMEM_CACHE
# 2.6.23
LN_KMEM_CACHE_CREATE_DTOR
+# PPC/PPC64 support
+LC_SEGMENT_H
])
#