-#
-# LN_CHECK_GCC_VERSION
-#
-# Check compiler version
-#
-AC_DEFUN([LN_CHECK_GCC_VERSION], [
-AC_MSG_CHECKING([compiler version])
-PTL_CC_VERSION=`$CC --version | awk '/^gcc/{print $ 3}'`
-PTL_MIN_CC_VERSION="3.2.2"
-v2n() {
- awk -F. '{printf "%d\n", (($ 1)*100+($ 2))*100+($ 3)}'
-}
-if test -z "$PTL_CC_VERSION" -o \
- $(echo $PTL_CC_VERSION | v2n) -ge $(echo $PTL_MIN_CC_VERSION | v2n); then
- AC_MSG_RESULT([ok])
-else
- AC_MSG_RESULT([Buggy compiler found])
- AC_MSG_ERROR([Need gcc version >= $PTL_MIN_CC_VERSION])
-fi
-]) # LN_CHECK_GCC_VERSION
-
-#
-# LN_CONFIG_AFFINITY
-#
-# check if cpu affinity is available/wanted
-#
-AC_DEFUN([LN_CONFIG_AFFINITY], [
-AC_MSG_CHECKING([whether to enable CPU affinity support])
-AC_ARG_ENABLE([affinity],
- AC_HELP_STRING([--disable-affinity],
- [disable process/irq affinity]),
- [], [enable_affinity="yes"])
-AC_MSG_RESULT([$enable_affinity])
-AS_IF([test "x$enable_affinity" = xyes], [
- LB_CHECK_COMPILE([if Linux kernel has cpu affinity support],
- set_cpus_allowed_ptr, [
- #include <linux/sched.h>
- ],[
- struct task_struct *t = NULL;
- cpumask_t m = { };
-
- set_cpus_allowed_ptr(t, &m);
- ],[
- AC_DEFINE(CPU_AFFINITY, 1,
- [kernel has cpu affinity support])
- ])
-])
-]) # LN_CONFIG_AFFINITY
-
-#
# LN_CONFIG_BACKOFF
#
# check if tunable tcp backoff is available/wanted
AC_SUBST(GNILND)
]) # LN_CONFIG_GNILND
-#
-# LN_CONFIG_SK_SLEEP
-#
-# 2.6.35 kernel has sk_sleep function
-#
-AC_DEFUN([LN_CONFIG_SK_SLEEP], [
-LB_CHECK_COMPILE([if Linux kernel has 'sk_sleep'],
-sk_sleep, [
- #include <net/sock.h>
-],[
- sk_sleep(NULL);
-],[
- AC_DEFINE(HAVE_SK_SLEEP, 1,
- [kernel has sk_sleep])
-])
-]) # LN_CONFIG_SK_SLEEP
-
-#
-# LN_CONFIG_TCP_SENDPAGE
-#
-# 2.6.36 tcp_sendpage() first parameter is 'struct sock'
-# instead of 'struct socket'.
-#
-AC_DEFUN([LN_CONFIG_TCP_SENDPAGE], [
-tmp_flags="$EXTRA_KCFLAGS"
-EXTRA_KCFLAGS="-Werror"
-LB_CHECK_COMPILE([if 'tcp_sendpage' first parameter is socket],
-tcp_sendpage_socket, [
- #include <linux/net.h>
- #include <net/tcp.h>
-],[
- tcp_sendpage((struct socket*)0, NULL, 0, 0, 0);
-],[
- AC_DEFINE(HAVE_TCP_SENDPAGE_USE_SOCKET, 1,
- [tcp_sendpage use socket as first parameter])
-])
-EXTRA_KCFLAGS="$tmp_flags"
-]) # LN_CONFIG_TCP_SENDPAGE
-
# LN_CONFIG_SOCK_CREATE_KERN
#
# 4.x sock_create_kern() added a first parameter as 'struct net *'
AC_MSG_NOTICE([LNet kernel checks
==============================================================================])
-LN_CONFIG_AFFINITY
LN_CONFIG_BACKOFF
LN_CONFIG_O2IB
LN_CONFIG_GNILND
-# 2.6.35
-LN_CONFIG_SK_SLEEP
-# 2.6.36
-LN_CONFIG_TCP_SENDPAGE
# 3.10
LN_EXPORT_KMAP_TO_PAGE
# 3.15
#include <lnet/lib-lnet.h>
#include <lnet/socklnd.h>
-#ifdef HAVE_TCP_SENDPAGE_USE_SOCKET
-# define cfs_tcp_sendpage(sk, page, offset, size, flags) \
- tcp_sendpage((sk)->sk_socket, page, offset, size, flags)
-#else /* !HAVE_TCP_SENDPAGE_USE_SOCKET */
-# define cfs_tcp_sendpage(sk, page, offset, size, flags) \
- tcp_sendpage(sk, page, offset, size, flags)
-#endif /* HAVE_TCP_SENDPAGE_USE_SOCKET */
-
#ifndef NETIF_F_CSUM_MASK
# define NETIF_F_CSUM_MASK NETIF_F_ALL_CSUM
#endif
unsigned int *ksnd_zc_min_payload; /* minimum zero copy payload size */
int *ksnd_zc_recv; /* enable ZC receive (for Chelsio TOE) */
int *ksnd_zc_recv_min_nfrags; /* minimum # of fragments to enable ZC receive */
-#ifdef CPU_AFFINITY
int *ksnd_irq_affinity; /* enable IRQ affinity? */
-#endif
#ifdef SOCKNAL_BACKOFF
int *ksnd_backoff_init; /* initial TCP backoff */
int *ksnd_backoff_max; /* maximum TCP backoff */
module_param(inject_csum_error, int, 0644);
MODULE_PARM_DESC(inject_csum_error, "set non-zero to inject a checksum error");
-#ifdef CPU_AFFINITY
static int enable_irq_affinity = 0;
module_param(enable_irq_affinity, int, 0644);
MODULE_PARM_DESC(enable_irq_affinity, "enable IRQ affinity");
-#endif
static int nonblk_zcack = 1;
module_param(nonblk_zcack, int, 0644);
ksocknal_tunables.ksnd_zc_recv = &zc_recv;
ksocknal_tunables.ksnd_zc_recv_min_nfrags = &zc_recv_min_nfrags;
-#ifdef CPU_AFFINITY
if (enable_irq_affinity) {
CWARN("irq_affinity is removed from socklnd because modern "
"computer always has fast CPUs and more cores than "
"another way, please check manual for details.\n");
}
ksocknal_tunables.ksnd_irq_affinity = &enable_irq_affinity;
-#endif
#ifdef SOCKNAL_BACKOFF
ksocknal_tunables.ksnd_backoff_init = &backoff_init;