Whamcloud - gitweb
LU-13488 kernel: new kernel [RHEL 8.2 4.18.0-193.1.2.el8]
[fs/lustre-release.git] / lnet / autoconf / lustre-lnet.m4
index 85125f2..318036b 100644 (file)
@@ -1,53 +1,3 @@
-#
-# 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
@@ -152,6 +102,8 @@ esac
 
 AS_IF([test $ENABLEO2IB = "no"], [
        AC_MSG_RESULT([no])
+       AC_DEFUN([LN_CONFIG_O2IB_SRC], [])
+       AC_DEFUN([LN_CONFIG_O2IB_RESULTS], [])
 ], [
        o2ib_found=false
        for O2IBPATH in $O2IBPATHS; do
@@ -565,7 +517,14 @@ AS_IF([test $ENABLEO2IB != "no"], [
        ])
        EXTRA_KCFLAGS="$tmp_flags"
 
+       # 5.0
+       LN_IB_DEVICE_OPS_EXISTS
+       # 5.1
+       LN_IB_SG_DMA_ADDRESS_EXISTS
+
        EXTRA_CHECK_INCLUDE=""
+       AC_DEFUN([LN_CONFIG_O2IB_SRC], [])
+       AC_DEFUN([LN_CONFIG_O2IB_RESULTS], [])
 ]) # ENABLEO2IB != "no"
 ]) # LN_CONFIG_O2IB
 
@@ -629,45 +588,6 @@ AC_SUBST(GNICPPFLAGS)
 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 *'
@@ -722,25 +642,25 @@ LB_CHECK_EXPORT([kmap_to_page], [mm/highmem.c],
 ]) # LN_EXPORT_KMAP_TO_PAG
 
 #
-# LN_CONFIG_SOCK_ACCEPT
+# LN_HAVE_HYPERVISOR_IS_TYPE
 #
-# 4.11 commit cdfbabfb2f0ce983fdaa42f20e5f7842178fc01e added a flag
-# to handle a possible lockdep condition kernel socket accept.
+# 4.14 commit 79cc74155218316b9a5d28577c7077b2adba8e58
+# x86/paravirt: Provide a way to check for hypervisors
 #
-AC_DEFUN([LN_CONFIG_SOCK_ACCEPT], [
+AC_DEFUN([LN_HAVE_HYPERVISOR_IS_TYPE], [
 tmp_flags="$EXTRA_KCFLAGS"
 EXTRA_KCFLAGS="-Werror"
-LB_CHECK_COMPILE([if 'struct sock' accept function requires a bool argument],
-kern_sock_flag, [
-       #include <linux/net.h>
+LB_CHECK_COMPILE([if hypervisor_is_type function is available],
+hypervisor_is_type_exists, [
+       #include <asm/hypervisor.h>
 ],[
-       ((struct socket *)0)->ops->accept(NULL, NULL, O_NONBLOCK, false);
+       (void)hypervisor_is_type(X86_HYPER_NATIVE);
 ],[
-       AC_DEFINE(HAVE_KERN_SOCK_ACCEPT_FLAG_ARG, 1,
-               ['struct sock' accept function requires bool argument])
+       AC_DEFINE(HAVE_HYPERVISOR_IS_TYPE, 1,
+               [hypervisor_is_type function exists])
 ])
 EXTRA_KCFLAGS="$tmp_flags"
-]) # LN_CONFIG_SOCK_ACCEPT
+]) # LN_HAVE_HYPERVISOR_IS_TYPE
 
 #
 # LN_HAVE_ORACLE_OFED_EXTENSIONS
@@ -784,6 +704,33 @@ EXTRA_KCFLAGS="$tmp_flags"
 ]) # LN_CONFIG_SOCK_GETNAME
 
 #
+# LN_HAVE_IN_DEV_FOR_EACH_IFA_RTNL
+#
+# kernel 5.3 commit ef11db3310e272d3d8dbe8739e0770820dd20e52
+# and kernel 4.18.0-193.el8:
+# added in_dev_for_each_ifa_rtnl and in_dev_for_each_ifa_rcu
+# and removed for_ifa and endfor_ifa.
+# Use the _rntl variant as the current locking is rtnl.
+#
+AC_DEFUN([LN_HAVE_IN_DEV_FOR_EACH_IFA_RTNL], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if 'in_dev_for_each_ifa_rtnl' is defined],
+in_dev_for_each_ifa_rtnl_test, [
+       #include <linux/inetdevice.h>
+],[
+       const struct in_ifaddr *ifa = NULL;
+       struct in_device *in_dev = NULL;
+
+       in_dev_for_each_ifa_rtnl(ifa, in_dev) {}
+],[
+       AC_DEFINE(HAVE_IN_DEV_FOR_EACH_IFA_RTNL, 1,
+               ['in_dev_for_each_ifa_rtnl' is defined])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LN_HAVE_IN_DEV_FOR_EACH_IFA_RTNL
+
+#
 # LN_IB_DEVICE_OPS_EXISTS
 #
 # kernel 5.0 commit 521ed0d92ab0db3edd17a5f4716b7f698f4fce61
@@ -833,6 +780,29 @@ EXTRA_KCFLAGS="$tmp_flags"
 ]) # LN_IB_SG_DMA_ADDRESS_EXISTS
 
 #
+# LN_USR_RDMA
+#
+#
+AC_DEFUN([LN_USR_RDMA], [
+AC_MSG_CHECKING([if RDMA_PS_TCP exists])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+       #include <rdma/rdma_user_cm.h>
+
+       int main(void) {
+               int x = (int)RDMA_PS_TCP;
+               return x;
+       }
+])],[
+       AC_DEFINE(HAVE_USRSPC_RDMA_PS_TCP, 1,
+               [RDMA_PS_TCP exists])
+])
+]) # LN_USR_RDMA
+
+
+AC_DEFUN([LN_PROG_LINUX_SRC], [])
+AC_DEFUN([LN_PROG_LINUX_RESULTS], [])
+
+#
 # LN_PROG_LINUX
 #
 # LNet linux kernel checks
@@ -841,30 +811,22 @@ AC_DEFUN([LN_PROG_LINUX], [
 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
 LN_CONFIG_SK_DATA_READY
 # 4.x
 LN_CONFIG_SOCK_CREATE_KERN
-# 4.11
-LN_CONFIG_SOCK_ACCEPT
 # 4.14
+LN_HAVE_HYPERVISOR_IS_TYPE
 LN_HAVE_ORACLE_OFED_EXTENSIONS
 # 4.17
 LN_CONFIG_SOCK_GETNAME
-# 5.0
-LN_IB_DEVICE_OPS_EXISTS
-# 5.1
-LN_IB_SG_DMA_ADDRESS_EXISTS
+# 5.3 and 4.18.0-193.el8
+LN_HAVE_IN_DEV_FOR_EACH_IFA_RTNL
 ]) # LN_PROG_LINUX
 
 #
@@ -909,6 +871,7 @@ AS_IF([test "$enable_efence" = yes], [
 AC_SUBST(LIBEFENCE)
 
 LN_CONFIG_DLC
+LN_USR_RDMA
 ]) # LN_CONFIGURE
 
 #