From: Shaun Tancheff Date: Thu, 22 Jul 2021 08:58:44 +0000 (-0500) Subject: LU-14881 libcfs: Complete testing for tcp_sock_set_* X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=bd3eb8409945fad88654f92ee2077936d610753a;p=fs%2Flustre-release.git LU-14881 libcfs: Complete testing for tcp_sock_set_* 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 Change-Id: I4fce67b801979ec7857265b6bd0370c05737e268 Reviewed-by: James Simmons Reviewed-by: Aurelien Degremont Reviewed-on: https://review.whamcloud.com/44995 Reviewed-by: Andreas Dilger Tested-by: Andreas Dilger --- diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index 358167b..ce1d2f5 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -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 +],[ + 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 +],[ + 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 +],[ + 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 diff --git a/libcfs/include/libcfs/linux/linux-net.h b/libcfs/include/libcfs/linux/linux-net.h index 98951f7..15b40fb 100644 --- a/libcfs/include/libcfs/linux/linux-net.h +++ b/libcfs/include/libcfs/linux/linux-net.h @@ -27,6 +27,7 @@ #include +#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__ */