<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Freddie,<br>
<br>
Yes, correct - those writes are more than large enough.  Default cutover is 2 MiB for writes, 4 MiB for reads.  It should 'just work'.  The only version which is 'new enough' is 2.17, though - Prior to that, in 2.16 you have to set the O_DIRECT flag but can
 do it unaligned, then in 2.15, you have to actually set up to do aligned O_DIRECT.  Gradual progress.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
If you do use 2.17, you can do lctl get_param llite.*.*hybrid*<br>
And see some stats and other settings.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Peter,<br>
<br>
Correct - 2.17 clients should be able to do hybrid IO with 2.15 servers (not earlier).</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Regards,<br>
Patrick</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> Freddie Witherden <freddie@witherden.org><br>
<b>Sent:</b> Saturday, February 7, 2026 2:31 PM<br>
<b>To:</b> Patrick Farrell <pfarrell@ddn.com><br>
<b>Subject:</b> Re: [lustre-discuss] Group Lock Semantics</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Hi Patrick,<br>
<br>
Thank you very much for this.<br>
<br>
On 07/02/2026 12:11, Patrick Farrell wrote:<br>
> Hybrid IO is a new feature in Lustre 2.17 which automatically switches <br>
> to direct IO for IO above a certain configurable size - it relies on <br>
> another new Lustre trick, which is the ability to do /unaligned/ direct <br>
> IO.  In fact, unaligned direct IO support is in Lustre 2.16, so if you <br>
> have that or newer (Or EXA6 from DDN), you could skip the alignment work <br>
> you're describing.  (Much of the purpose of this work - unaligned direct <br>
> IO and hybrid - is to make the benefits of direct IO easy to access.)<br>
> <br>
> Currently we only switch for IO above a certain size, but we intend to <br>
> eventually switch to direct IO for IO when lock contention is detected <br>
> as well.  We simply haven't found time to do the development there yet.<br>
<br>
So if I am understanding correctly with a new enough version of Lustre <br>
(our users are all over the place, but should be able to get a recent <br>
version on a local cluster) we can just have each rank do unaligned <br>
buffered I/O without any explicit locking and have it 'just work' from a <br>
performance perspective?  Our writes are large (100's MiB contiguous).<br>
<br>
Regards, Freddie.<br>
<br>
</div>
</span></font></div>
</body>
</html>