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-Tag: 2.14.54~23 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=bbd9646f91fd13ea84f730296f3ce6983030aea2;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. Test-Parameters: trivial Fixes: 99d9638d6c ("LU-13783 libcfs: support removal of kernel_setsockopt()") Signed-off-by: Shaun Tancheff Change-Id: I4fce67b801979ec7857265b6bd0370c05737e268 Reviewed-on: https://review.whamcloud.com/44374 Tested-by: jenkins Reviewed-by: James Simmons Tested-by: Maloo Reviewed-by: Aurelien Degremont Reviewed-by: Oleg Drokin --- diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index 6b0755d..d58062e 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -1248,6 +1248,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 @@ -1693,6 +1753,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 cd6be13..08d9cf9 100644 --- a/libcfs/include/libcfs/linux/linux-net.h +++ b/libcfs/include/libcfs/linux/linux-net.h @@ -80,6 +80,7 @@ static inline int cfs_nla_parse_nested(struct nlattr *tb[], int maxtype, #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; @@ -87,6 +88,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) @@ -109,6 +111,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; @@ -116,7 +119,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; @@ -124,6 +129,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__ */