<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I agree strongly here, and I think going upstream with both makes some things much easier.&nbsp; It forces us to deal with ldiskfs but there's all of that shared code reorg, etc, which this can let us partially skip.&nbsp; While there's probably some value in fully separating
 client and server code, it would be a fair bit of work and then the keeping in sync, etc...&nbsp; All at once seems nicer to me.</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> lustre-devel &lt;lustre-devel-bounces@lists.lustre.org&gt; on behalf of Day, Timothy &lt;timday@amazon.com&gt;<br>
<b>Sent:</b> Sunday, January 19, 2025 9:57 PM<br>
<b>To:</b> NeilBrown &lt;neilb@suse.de&gt;<br>
<b>Cc:</b> lustre-devel@lists.lustre.org &lt;lustre-devel@lists.lustre.org&gt;<br>
<b>Subject:</b> Re: [lustre-devel] [LSF/MM/BPF TOPIC] [DRAFT] Lustre client upstreaming</font>
<div>&nbsp;</div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText"><br>
<br>
\ufeff&gt; On 1/18/25, 5:21 PM, &quot;NeilBrown&quot; &lt;neilb@suse.de &lt;<a href="mailto:neilb@suse.de">mailto:neilb@suse.de</a>&gt;&gt; wrote:<br>
&gt; &gt; On Sun, 19 Jan 2025, Day, Timothy wrote:<br>
&gt; &gt;<br>
&gt; &gt; On the other hand, I wonder if we upstream the whole thing all at once. Beside<br>
&gt; &gt; the code being a bit nicer, the client isn't really that much closer to being upstream<br>
&gt; &gt; than the server is. And no one else can test the client without having a Lustre<br>
&gt; &gt; server on-hand. So no-one can easily run xfstests or similar. And doing everything<br>
&gt; &gt; all at once would preempt questions of client/server split or the server upstreaming<br>
&gt; &gt; timeline. But upstreaming so much all at once is probably more unrealistic.<br>
&gt;<br>
&gt;<br>
&gt; The main difference I see between server and client in upstreaming terms<br>
&gt; is the storage backend. It would need to use un-patched ext4 - ideally<br>
&gt; using VFS interfaces though we might be able to negotiate with the ext4<br>
&gt; team to get some exports. I don't know much about the delta between<br>
&gt; ldiskfs and ext4 and understand it is much smaller than it once was, but<br>
&gt; it would need to be zero. I'm working towards getting the pdirop patch<br>
&gt; upstreamable. Andreas would know what else is needed better than I.<br>
<br>
I've been working on a third storage backend [1]. It'll likely be done<br>
well before we submit anything upstream. It's a just memory-only<br>
target. That might be justification enough to keep the OSD APIs.<br>
<br>
[1] <a href="https://review.whamcloud.com/c/fs/lustre-release/+/55594">https://review.whamcloud.com/c/fs/lustre-release/+/55594</a><br>
<br>
&gt; The other difference is that a lot of the &quot;revise code to match upstream<br>
&gt; style&quot; work has focused on client and ignored server-only code.<br>
&gt;<br>
&gt;<br>
&gt; It might be sensible to set the goal as &quot;client and server&quot; including<br>
&gt; only the ext4 backend and possibly only the socklnd network interface.<br>
&gt; It will be a big code drop either way. People aren't going to go over<br>
&gt; every line with a fine-tooth-comb. They will mostly look at whichever<br>
&gt; bit particularly interests them, and look at the process and community<br>
&gt; behind the code.<br>
&gt;<br>
&gt;<br>
&gt; Being able to build a pure upstream kernel, add a user-space tools<br>
&gt; package, and test would certainly be a plus. That would be something<br>
&gt; worth canvassing at LSF - is there any value in landing the client<br>
&gt; without the server?<br>
<br>
Yeah, I'm leaning towards setting the goal as both client/server and<br>
gathering opinions from LSF. The client and server are still pretty<br>
intertwined. I think having the client go upstream and then basing<br>
the server on top an in-tree client would make server development<br>
noticeably more difficult. Thinking on it more - I don't think<br>
upstreaming the server is more ambitious than the client. We<br>
have more of a process problem than a code problem. And I don't<br>
think the server is in particularly bad shape.<br>
<br>
&gt;<br>
&gt; NeilBrown<br>
&gt;<br>
<br>
Tim Day<br>
<br>
_______________________________________________<br>
lustre-devel mailing list<br>
lustre-devel@lists.lustre.org<br>
<a href="http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org">http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org</a><br>
</div>
</span></font></div>
</body>
</html>