<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. It forces us to deal with ldiskfs but there's all of that shared code reorg, etc, which this can let us partially skip. 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... 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 <lustre-devel-bounces@lists.lustre.org> on behalf of Day, Timothy <timday@amazon.com><br>
<b>Sent:</b> Sunday, January 19, 2025 9:57 PM<br>
<b>To:</b> NeilBrown <neilb@suse.de><br>
<b>Cc:</b> lustre-devel@lists.lustre.org <lustre-devel@lists.lustre.org><br>
<b>Subject:</b> Re: [lustre-devel] [LSF/MM/BPF TOPIC] [DRAFT] Lustre client upstreaming</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText"><br>
<br>
> On 1/18/25, 5:21 PM, "NeilBrown" <neilb@suse.de <<a href="mailto:neilb@suse.de">mailto:neilb@suse.de</a>>> wrote:<br>
> > On Sun, 19 Jan 2025, Day, Timothy wrote:<br>
> ><br>
> > On the other hand, I wonder if we upstream the whole thing all at once. Beside<br>
> > the code being a bit nicer, the client isn't really that much closer to being upstream<br>
> > than the server is. And no one else can test the client without having a Lustre<br>
> > server on-hand. So no-one can easily run xfstests or similar. And doing everything<br>
> > all at once would preempt questions of client/server split or the server upstreaming<br>
> > timeline. But upstreaming so much all at once is probably more unrealistic.<br>
><br>
><br>
> The main difference I see between server and client in upstreaming terms<br>
> is the storage backend. It would need to use un-patched ext4 - ideally<br>
> using VFS interfaces though we might be able to negotiate with the ext4<br>
> team to get some exports. I don't know much about the delta between<br>
> ldiskfs and ext4 and understand it is much smaller than it once was, but<br>
> it would need to be zero. I'm working towards getting the pdirop patch<br>
> 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>
> The other difference is that a lot of the "revise code to match upstream<br>
> style" work has focused on client and ignored server-only code.<br>
><br>
><br>
> It might be sensible to set the goal as "client and server" including<br>
> only the ext4 backend and possibly only the socklnd network interface.<br>
> It will be a big code drop either way. People aren't going to go over<br>
> every line with a fine-tooth-comb. They will mostly look at whichever<br>
> bit particularly interests them, and look at the process and community<br>
> behind the code.<br>
><br>
><br>
> Being able to build a pure upstream kernel, add a user-space tools<br>
> package, and test would certainly be a plus. That would be something<br>
> worth canvassing at LSF - is there any value in landing the client<br>
> 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>
><br>
> NeilBrown<br>
><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>