<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Hi Andrej,
<div class="">could you please check if your change is included in one of the patches in&nbsp;<a href="https://jira.whamcloud.com/browse/LU-14195" class="">https://jira.whamcloud.com/browse/LU-14195</a>&nbsp;&quot;Support for linux kernel version 5.10&quot;? &nbsp;If not, that would
 be the natural ticket to reference when submit this patch. &nbsp;Note, however, that the same code also needs to be conditional based on configure checks of the kernel for the appropriate symbols so that it works on all supported kernels.<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On May 3, 2021, at 09:47, Andrej Filipcic via lustre-discuss &lt;<a href="mailto:lustre-discuss@lists.lustre.org" class="">lustre-discuss@lists.lustre.org</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class=""><br class="">
Hi,<br class="">
<br class="">
I compiled the master from today (commit 0b7ddf32e336b06d459880faf9831db43ffae9cf) on 5.10.34 kernel with mpi support (RHEL8.3 otherwise), and it seems to work properly for me. I needed to do the following changes, while cross-checking LU-14195<br class="">
<br class="">
diff --git a/lnet/lnet/lib-socket.c b/lnet/lnet/lib-socket.c<br class="">
index 4a86114ecf..1412d9deb0 100644<br class="">
--- a/lnet/lnet/lib-socket.c<br class="">
+++ b/lnet/lnet/lib-socket.c<br class="">
@@ -343,9 +343,10 @@ struct socket *<br class="">
&nbsp;lnet_sock_listen(int local_port, int backlog, struct net *ns)<br class="">
&nbsp;{<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct socket *sock;<br class="">
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mm_segment_t oldfs;<br class="">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //mm_segment_t oldfs;<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int val = 0;<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int rc;<br class="">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sockptr_t sval;<br class="">
<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sock = lnet_sock_create(-1, NULL, local_port, ns);<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (IS_ERR(sock)) {<br class="">
@@ -360,11 +361,13 @@ lnet_sock_listen(int local_port, int backlog, struct net *ns)<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * This is the default, but it can be overridden so<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * we force it back.<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br class="">
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oldfs = get_fs();<br class="">
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set_fs(KERNEL_DS);<br class="">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //oldfs = get_fs();<br class="">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //set_fs(KERNEL_DS);<br class="">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //sock-&gt;ops-&gt;setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,<br class="">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (char __user __force *) &amp;val, sizeof(val));<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sock-&gt;ops-&gt;setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,<br class="">
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (char __user __force *) &amp;val, sizeof(val));<br class="">
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set_fs(oldfs);<br class="">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sval, sizeof(val));<br class="">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //set_fs(oldfs);<br class="">
<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rc = kernel_listen(sock, backlog);<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (rc == 0)<br class="">
<br class="">
With this version, the client works quite fine over o2ib (Mellanox drivers) with DDN Lustre servers&nbsp; 2.12.6, tested with several writes, unpacking and compiling kernel in lustre etc...<br class="">
<br class="">
Can somebody please tell&nbsp; if the fixes above are correct, or if there is any danger in using the master for clients in production?<br class="">
<br class="">
Best regards,<br class="">
Andrej<br class="">
<br class="">
-- <br class="">
_____________________________________________________________<br class="">
&nbsp;&nbsp;prof. dr. Andrej Filipcic, &nbsp;&nbsp;<a href="mailto:Andrej.Filipcic@ijs.si" class="">E-mail: Andrej.Filipcic@ijs.si</a><br class="">
&nbsp;&nbsp;Department of Experimental High Energy Physics - F9<br class="">
&nbsp;&nbsp;Jozef Stefan Institute, Jamova 39, P.o.Box 3000<br class="">
&nbsp;&nbsp;SI-1001 Ljubljana, Slovenia<br class="">
&nbsp;&nbsp;Tel.: +386-1-477-3674 &nbsp;&nbsp;&nbsp;Fax: +386-1-425-7074<br class="">
-------------------------------------------------------------<br class="">
<br class="">
_______________________________________________<br class="">
lustre-discuss mailing list<br class="">
<a href="mailto:lustre-discuss@lists.lustre.org" class="">lustre-discuss@lists.lustre.org</a><br class="">
http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
<div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div>Cheers, Andreas</div>
<div>--</div>
<div>Andreas Dilger</div>
<div>Principal Lustre Architect</div>
<div>Whamcloud</div>
<div><br class="">
</div>
<div><br class="">
</div>
<div><br class="">
</div>
</div>
</div>
</div>
</div>
</div>
<br class="Apple-interchange-newline">
<br class="Apple-interchange-newline">
</div>
<br class="">
</div>
</body>
</html>