Whamcloud - gitweb
LU-14881 libcfs: Complete testing for tcp_sock_set_*
authorShaun Tancheff <shaun.tancheff@hpe.com>
Thu, 22 Jul 2021 08:58:44 +0000 (03:58 -0500)
committerAndreas Dilger <adilger@whamcloud.com>
Mon, 20 Sep 2021 22:47:59 +0000 (22:47 +0000)
Linux commits:
  v5.7-rc6-2504-gddd061b8daed
  tcp: add tcp_sock_set_quickack

  v5.7-rc6-2508-gd41ecaac903c
  tcp: add tcp_sock_set_keepintvl

  v5.7-rc6-2509-g480aeb9639d6
  tcp: add tcp_sock_set_keepcnt

Introduced a series of helper functions that may be
back ported individually.

Lustre-change: https://review.whamcloud.com/44374
Lustre-commit: bbd9646f91fd13ea84f730296f3ce6983030aea2

Test-Parameters: trivial
Fixes: 99d9638d6c ("LU-13783 libcfs: support removal of kernel_setsockopt()")
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I4fce67b801979ec7857265b6bd0370c05737e268
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Aurelien Degremont <degremoa@amazon.com>
Reviewed-on: https://review.whamcloud.com/44995
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Andreas Dilger <adilger@whamcloud.com>
libcfs/autoconf/lustre-libcfs.m4
libcfs/include/libcfs/linux/linux-net.h

index 358167b..ce1d2f5 100644 (file)
@@ -1189,6 +1189,66 @@ EXTRA_KCFLAGS="$tmp_flags"
 ]) # LIBCFS_TCP_SOCK_SET_KEEPIDLE
 
 #
+# LIBCFS_TCP_SOCK_SET_QUICKACK
+# kernel v5.7-rc6-2504-gddd061b8daed
+#   tcp: add tcp_sock_set_quickack
+#
+AC_DEFUN([LIBCFS_TCP_SOCK_SET_QUICKACK], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if 'tcp_sock_set_quickack()' exists],
+tcp_sock_set_quickack_exists, [
+       #include <linux/tcp.h>
+],[
+       tcp_sock_set_quickack(NULL, 0);
+],[
+       AC_DEFINE(HAVE_TCP_SOCK_SET_QUICKACK, 1,
+               ['tcp_sock_set_quickack()' exists])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LIBCFS_TCP_SOCK_SET_QUICKACK
+
+#
+# LIBCFS_TCP_SOCK_SET_KEEPINTVL
+# v5.7-rc6-2508-gd41ecaac903c
+# tcp: add tcp_sock_set_keepintvl
+#
+AC_DEFUN([LIBCFS_TCP_SOCK_SET_KEEPINTVL], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if 'tcp_sock_set_keepintvl()' exists],
+tcp_sock_set_keepintvl_exists, [
+       #include <linux/tcp.h>
+],[
+       tcp_sock_set_keepintvl(NULL, 0);
+],[
+       AC_DEFINE(HAVE_TCP_SOCK_SET_KEEPINTVL, 1,
+               ['tcp_sock_set_keepintvl()' exists])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LIBCFS_TCP_SOCK_SET_KEEPINTVL
+
+#
+# LIBCFS_TCP_SOCK_SET_KEEPCNT
+# v5.7-rc6-2509-g480aeb9639d6
+# tcp: add tcp_sock_set_keepcnt
+#
+AC_DEFUN([LIBCFS_TCP_SOCK_SET_KEEPCNT], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if 'tcp_sock_set_keepcnt()' exists],
+tcp_sock_set_keepcnt_exists, [
+       #include <linux/tcp.h>
+],[
+       tcp_sock_set_keepcnt(NULL, 0);
+],[
+       AC_DEFINE(HAVE_TCP_SOCK_SET_KEEPCNT, 1,
+               ['tcp_sock_set_keepcnt()' exists])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LIBCFS_TCP_SOCK_SET_KEEPCNT
+
+#
 # LIBCFS_XARRAY_SUPPORT
 #
 # 4.19-rc5 kernel commit 3159f943aafdbacb2f94c38fdaadabf2bbde2a14
@@ -1603,6 +1663,9 @@ LIBCFS_CACHE_DETAIL_WRITERS
 LIBCFS_HAVE_NR_UNSTABLE_NFS
 # 5.7
 LIBCFS_KALLSYMS_LOOKUP
+LIBCFS_TCP_SOCK_SET_QUICKACK
+LIBCFS_TCP_SOCK_SET_KEEPINTVL
+LIBCFS_TCP_SOCK_SET_KEEPCNT
 # 5.8
 LIBCFS_HAVE_MMAP_LOCK
 LIBCFS_KERNEL_SETSOCKOPT
index 98951f7..15b40fb 100644 (file)
@@ -27,6 +27,7 @@
 
 #include <net/tcp.h>
 
+#if !defined(HAVE_TCP_SOCK_SET_QUICKACK)
 static inline void tcp_sock_set_quickack(struct sock *sk, int opt)
 {
        struct socket *sock = sk->sk_socket;
@@ -34,6 +35,7 @@ static inline void tcp_sock_set_quickack(struct sock *sk, int opt)
        kernel_setsockopt(sock, SOL_TCP, TCP_QUICKACK,
                          (char *)&opt, sizeof(opt));
 }
+#endif /* HAVE_TCP_SOCK_SET_QUICKACK */
 
 #if !defined(HAVE_TCP_SOCK_SET_NODELAY)
 static inline void tcp_sock_set_nodelay(struct sock *sk)
@@ -56,6 +58,7 @@ static inline int tcp_sock_set_keepidle(struct sock *sk, int opt)
 }
 #endif /* HAVE_TCP_SOCK_SET_KEEPIDLE */
 
+#if !defined(HAVE_TCP_SOCK_SET_KEEPINTVL)
 static inline int tcp_sock_set_keepintvl(struct sock *sk, int opt)
 {
        struct socket *sock = sk->sk_socket;
@@ -63,7 +66,9 @@ static inline int tcp_sock_set_keepintvl(struct sock *sk, int opt)
        return kernel_setsockopt(sock, SOL_TCP, TCP_KEEPINTVL,
                                 (char *)&opt, sizeof(opt));
 }
+#endif /* HAVE_TCP_SOCK_SET_KEEPINTVL */
 
+#if !defined(HAVE_TCP_SOCK_SET_KEEPCNT)
 static inline int tcp_sock_set_keepcnt(struct sock *sk, int opt)
 {
        struct socket *sock = sk->sk_socket;
@@ -71,6 +76,7 @@ static inline int tcp_sock_set_keepcnt(struct sock *sk, int opt)
        return kernel_setsockopt(sock, SOL_TCP, TCP_KEEPCNT,
                                 (char *)&opt, sizeof(opt));
 }
+#endif /* HAVE_TCP_SOCK_SET_KEEPCNT */
 #endif /* HAVE_KERNEL_SETSOCKOPT */
 
 #endif /* __LIBCFS_LINUX_NET_H__ */