<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:04:22 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-13805] i/o path: Unaligned direct i/o</title>
                <link>https://jira.whamcloud.com/browse/LU-13805</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;With the DIO performance improvements in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13798&quot; title=&quot;Improve direct i/o performance with multiple stripes: Submit all stripes of a DIO and then wait&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13798&quot;&gt;&lt;del&gt;LU-13798&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13799&quot; title=&quot;DIO/AIO efficiency improvements&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13799&quot;&gt;&lt;del&gt;LU-13799&lt;/del&gt;&lt;/a&gt;, it becomes interesting to do larger buffered i/o (BIO) using the DIO path, as in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13802&quot; title=&quot;New i/o path: Buffered i/o as DIO&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13802&quot;&gt;LU-13802&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13802&quot; title=&quot;New i/o path: Buffered i/o as DIO&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13802&quot;&gt;LU-13802&lt;/a&gt; covers the code for switching between the BIO and DIO paths, allowing BIO which meets the requirements for DIO to use the BIO path when appropriate.&lt;/p&gt;

&lt;p&gt;The problem is, the requirements for DIO are sometimes hard to meet.&#160; i/o must be both page &amp;amp; size aligned.&#160; This ticket is about how to do unaligned DIO, in order to let us do any BIO through the DIO path.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;This cannot be done with the existing Lustre i/o path.&#160; There are a few minor issues, but the central problem is that if an i/o is unaligned, we no longer have a 1-to-1 mapping between a page on the client and a page in the file/on the server.&#160; (Buffered i/o creates this 1-to-1 mapping by copying in to an aligned buffer.)&#160; This 1-to-1 mapping could possibly be removed, but it would require a significant rework of the Lustre i/o path to make this possible.&lt;/p&gt;

&lt;p&gt;So, one option is creating a new DIO path which permits unaligned i/o from userspace all the way to disk.&lt;/p&gt;

&lt;p&gt;The other option comes from the following observation:&lt;br/&gt;
When doing buffered i/o, about 20% of the time is spent in allocating the buffer and doing memcopy() in to that buffer.&#160; Of the remaining 80%, something like 70% is page tracking of various kinds.&lt;br/&gt;
Because each page in the page cache can be accessed from multiple threads, including being flushed at any time from various threads (memory pressure va kswapd, lock cancellation, writeout...), it has to be on various lists &amp;amp; have references on (effectively) the file it is part of, etc.&lt;/p&gt;

&lt;p&gt;This work, not allocation and memcopy, is where most of the time goes.&lt;/p&gt;

&lt;p&gt;So if we implement a simple buffering scheme - allocate an aligned buffer, then copy data to (or from) that buffer - and then do a normal DIO write(/read) from(/to) that buffer, this can be hugely faster than buffered i/o.&lt;/p&gt;

&lt;p&gt;If we use the normal DIO path (ie, sync write, and do not keep pages after read), we keep this as a &lt;b&gt;buffer&lt;/b&gt;, and not a &lt;b&gt;cache&lt;/b&gt;, so we can keep the DIO path lockless.&lt;/p&gt;

&lt;p&gt;Also, if we implement this correctly, we have a number of excellent options for speeding this up:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Move allocation (if we&apos;re not pre-allocated) and memcopy from the user thread to the ptlrpcd threads handling RPC submission - This allows us to do these operations in parallel, which should dramatically improve speed.&lt;/li&gt;
	&lt;li&gt;Use pre-allocated buffers.&lt;/li&gt;
	&lt;li&gt;Potentially, since we control the entire copying path, we could enable the FPU to use vectorized memcopies.&#160; (Various aspects of the buffered i/o path in the kernel mean the FPU has to be turned on and off for each page.&#160; The cost of this outweighs the benefit of vectorized memcopy.)&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
        <key id="60032">LU-13805</key>
            <summary>i/o path: Unaligned direct i/o</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="paf0186">Patrick Farrell</assignee>
                                    <reporter username="paf0186">Patrick Farrell</reporter>
                        <labels>
                    </labels>
                <created>Mon, 20 Jul 2020 18:27:18 +0000</created>
                <updated>Fri, 26 Jan 2024 18:39:24 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>21</watches>
                                                                            <comments>
                            <comment id="275797" author="paf0186" created="Mon, 20 Jul 2020 18:28:46 +0000"  >&lt;p&gt;Obviously, I favor this approach vs a full new unaligned i/o path, partly because I think this approach will be much simpler/easier.&#160; But if someone wants to implement a new unaligned DIO path and can make it fast and efficient, then that would be good as well. &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="275798" author="paf0186" created="Mon, 20 Jul 2020 18:31:25 +0000"  >&lt;p&gt;Also, I&apos;ve done a quick proof of concept of this &apos;fast buffering&apos; approach, and it seems to work fine.&#160; It&apos;s not anything worth posting unless people are really interested in seeing the bare minimum required to make this work for writes.&lt;/p&gt;</comment>
                            <comment id="275830" author="wshilong" created="Tue, 21 Jul 2020 00:16:05 +0000"  >&lt;p&gt;I think using extra page allocation is simple and good start, and actually, Oleg&apos;s lockess write patch has showed big improvements for this.&lt;/p&gt;</comment>
                            <comment id="275832" author="wshilong" created="Tue, 21 Jul 2020 00:42:54 +0000"  >&lt;p&gt;I hit to mention it, but i&apos;d like to raise this problem/question here:&lt;/p&gt;

&lt;p&gt;So the main purpose here we are trying to do is to make IO lockless, this could break lock behavior a bit like before:&lt;/p&gt;

&lt;p&gt;Let&apos;s consider stripe size is 4M, we are doing &quot;dd if=/dev/zero of=/mnt/lustre/data bs=16M count=1.&quot;&lt;/p&gt;

&lt;p&gt;With lockless IO, we don&apos;t do lock in client, but rather lock is doing in the server side, this means  lock is held in the server side per RPC level with random sequences, this could break behavior a bit like before, let&apos;s consider following cases:&lt;/p&gt;

&lt;p&gt;Client1: dd if=all_zero_file of=/mnt/lustre/data bs=16M count=1&lt;/p&gt;

&lt;p&gt;Client2: dd if=all_1_file of=/mnt/lustre/data1 bs=16M count=1&lt;/p&gt;

&lt;p&gt;So since we fallback to DIO with large IO size, we are doing  lockless for above command,  without lockless, client1 hold 16M ldlm lock, and then write data, Client2 try to hold same lock which conflict client1 and will trigger flush and cancel, finally data will be all zero  or all 1 filled.&lt;/p&gt;

&lt;p&gt;But with lockless, lock held is as per RPC, let&apos; say it is 4M RPC, so finally file contents might be totally random...&lt;/p&gt;

&lt;p&gt;I am not saying this could cause big problem, but this indeed break some previous Semantics that is known for some users which needs some extra attention here especially we are considering to fall buffer IO to DIO.&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;



</comment>
                            <comment id="275833" author="wshilong" created="Tue, 21 Jul 2020 00:48:02 +0000"  >&lt;p&gt;I might be wrong with lock could be held accross stripes once a time, it is still handled per stripe level?&lt;/p&gt;

&lt;p&gt;But anyway, we could not gurante RPC could always send one stripe size data with one RPC?&lt;/p&gt;</comment>
                            <comment id="275836" author="paf0186" created="Tue, 21 Jul 2020 01:18:39 +0000"  >&lt;p&gt;Well, the goal for me is to make it &lt;b&gt;much&lt;/b&gt;, &lt;b&gt;much&lt;/b&gt; faster - Unaligned i/o through this path can be made very fast.&#160; Lockless is also very nice, but it&apos;s not required.&#160;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;But, yes, absolutely:&lt;br/&gt;
 Write atomicity for multi-stripe writes is broken by lockless i/o.&#160; I sort of thought everyone realized that.&lt;/p&gt;

&lt;p&gt;Write atomicity is the guarantee that you get all of one write or another.&lt;/p&gt;

&lt;p&gt;So if we have two racing &amp;amp; overlapping 4 MiB writes in a 1 MiB stripe size file (with 4 stripes, to make it simple):&lt;br/&gt;
 AAAA&lt;br/&gt;
 BBBB&lt;/p&gt;

&lt;p&gt;Write atomicity is the guarantee that we get AAAA or BBBB.&lt;br/&gt;
 With lockless i/o, we can get any combination of A and B, like ABAB.&lt;/p&gt;

&lt;p&gt;With locked i/o, I believe we take all the LDLM locks &lt;b&gt;first&lt;/b&gt;, and then do the i/o - this would guarantee atomicity.&#160; (I have to check logs to be 100% sure.)&lt;/p&gt;</comment>
                            <comment id="275837" author="paf0186" created="Tue, 21 Jul 2020 01:22:19 +0000"  >&lt;p&gt;Locking is per-stripe in the sense that each LDLM lock goes to one stripe object.&#160; So, you can&apos;t hold one lock on &amp;gt; 1 stripe, but you can take multiple locks (like, the lock on stripe 1 and the lock on stripe 2) and hold them at the same time.&lt;/p&gt;</comment>
                            <comment id="275838" author="paf0186" created="Tue, 21 Jul 2020 01:24:50 +0000"  >&lt;p&gt;I guess I didn&apos;t share any performance data or projections in this LU...&lt;/p&gt;

&lt;p&gt;So, my first, quick implementation goes at 3 GiB/s.&#160; That is without any parallelism - ie, all the allocation and copying is done in the userspace thread, not ptlrpcd threads.&lt;/p&gt;

&lt;p&gt;There&apos;s also still a bunch of overhead in the DIO path as well.&lt;/p&gt;

&lt;p&gt;Basically, I would guess that we can do at least 5-10 GiB/s via this &quot;fast buffering&quot;, and I think 15+ is possible.&#160; I need to open the LU about the other work for DIO path efficiency, haven&apos;t found time yet.&lt;/p&gt;</comment>
                            <comment id="275839" author="wshilong" created="Tue, 21 Jul 2020 01:34:55 +0000"  >&lt;p&gt;I think 3GiB/s for now is attractive enough to play with it&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; Ihara want to kiss you&lt;/p&gt;</comment>
                            <comment id="292100" author="adilger" created="Tue, 16 Feb 2021 20:49:06 +0000"  >&lt;p&gt;It is worthwhile to note that we already &lt;b&gt;have&lt;/b&gt; a pre-allocated IO buffer on the client which is used for holding encrypted data before it is submitted to the server when Kerberos, SSK, or fscrypt is active.  This bounce buffer was recently used by patch &lt;a href=&quot;https://review.whamcloud.com/38967&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/38967&lt;/a&gt; &quot;&lt;tt&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12275&quot; title=&quot;Client-side file data encryption&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12275&quot;&gt;&lt;del&gt;LU-12275&lt;/del&gt;&lt;/a&gt; sec: O_DIRECT for encrypted file&lt;/tt&gt;&quot; for fscrypt so that the source buffers are not modified as the data is encrypted to be sent to the server.   It would be relatively straight forward to detect the case of unaligned incoming &lt;tt&gt;O_DIRECT&lt;/tt&gt; writes and copy the data into the bounce buffers with the proper alignment to be sent to the servers.  &lt;b&gt;However&lt;/b&gt;, it isn&apos;t clear if this client-side copy could be leveraged into an &quot;easy win&quot; that only affected the client (i.e. no server-side changes) in all cases, but may be useful in some workloads, and may be worthwhile to implement if the effort is low.&lt;/p&gt;

&lt;p&gt;Since we do not have (nor want) the start/end of the unaligned &lt;tt&gt;O_DIRECT&lt;/tt&gt; buffers on the client, it is likely that the server would &lt;b&gt;also&lt;/b&gt; have to do a data copy to overlay the partial-block write onto the full-sized pages (i.e. read-modify-write either to page cache or OST preallocated buffers).  Doing the data copy on &lt;b&gt;both&lt;/b&gt; the client and server seems undesirable, so in fact it would make more sense to just extend the &lt;tt&gt;OST_BRW_READ/WRITE&lt;/tt&gt; RPC protocol to allow specifying an unaligned IO request, do the RDMA of the source pages with whatever data alignment the client currently has, then copy the data on the server into its final location.&lt;/p&gt;

&lt;p&gt;There are several benefits of doing the unaligned data copy on the server side, despite the added CPU overhead it places on the server:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;the client does not send RPCs to pre-read the start/end pages into its cache to generate full-page writes&lt;/li&gt;
	&lt;li&gt;the server may already have those pages in its cache from other adjacent unaligned writes, and can merge them very efficiently&lt;/li&gt;
	&lt;li&gt;the server can hold the extent lock on the object for the region being modified instead of the client&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This would clearly be a tradeoff between added CPU overhead on the server vs. extra RPCs from the client, so this optimization would only make sense up to some particular IO size (e.g. &amp;lt; 64KB or &lt;tt&gt;cl_max_short_io_bytes&lt;/tt&gt;, but subject to measurement).  Beyond that threshold, doing the copy on the client to align the data would allow the &lt;b&gt;intermediate&lt;/b&gt; pages to avoid the majority of the copying on the OSS.  Beyond a higher threshold (e.g. &amp;gt;=1MB) it is better to just read the start/end pages to the client (in a single RPC!) and submit the whole RPC directly to the OSS as is done today.&lt;/p&gt;</comment>
                            <comment id="292611" author="gerrit" created="Mon, 22 Feb 2021 13:37:56 +0000"  >&lt;p&gt;Wang Shilong (wshilong@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/41715&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/41715&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; clio: bounce buffer to support unaligned DIO write&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: ce19114c327946a609f1d239bccf588a5be86112&lt;/p&gt;</comment>
                            <comment id="292613" author="wshilong" created="Mon, 22 Feb 2021 13:42:25 +0000"  >&lt;p&gt;This is just a simple way to support unaligned DIO write use bounce buffer it might be intresting to see how this could help IOR hard write performance.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="318569" author="gerrit" created="Thu, 18 Nov 2021 22:54:52 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/45616&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/45616&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; clio: bounce buffer for unaligned DIO&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: e1b0da4c429116b824335567c9f29e8a30385bb8&lt;/p&gt;</comment>
                            <comment id="324525" author="green" created="Mon, 31 Jan 2022 02:35:34 +0000"  >&lt;p&gt;know I am late on this ticket but why do we need 1:1 mapping between client-server pages for IO and therefore the need for bounce buffers?&lt;/p&gt;

&lt;p&gt;We already had &quot;all io is direct io&quot; patch that was used by llnl in 1.8 branch and basically for lnet purposes you give it an iovec in the form of &quot;my data starts at this page this offset and runs this long (spans many pages)&quot;. Can&apos;t seem to find the ticket now though.&lt;/p&gt;

&lt;p&gt;Server-side it lands into another buffer at a totally different alignment which is not a problem. The only stretch is you need to calculate the lnb/rnb as if your source data was particularly aligned, but it does not require any data movement.&lt;/p&gt;

&lt;p&gt;We also had similar-natured lockless io triggered by contention on a resource in 1.x branch.&lt;/p&gt;</comment>
                            <comment id="324588" author="paf0186" created="Mon, 31 Jan 2022 16:00:35 +0000"  >&lt;p&gt;So my understanding is as follows...&#160; (Oleg, this will include some things you definitely know, I&apos;m just trying to give a complete explanation for anyone reading this.)&lt;/p&gt;

&lt;p&gt;Allowing unaligned I/O means userspace pages can have a non-1-to-1 mapping with filepages.&#160; A write from a single page of userspace memory can span two file pages, since it doesn&apos;t have to be aligned.&lt;/p&gt;

&lt;p&gt;As I understand it, the data &lt;b&gt;eventually&lt;/b&gt; needs to be aligned for the write to disk.&#160; Like, we can&apos;t write from the same page in memory to two pages on disk, or we can&apos;t do it without a significant cost.&#160; (Since every memory page is unaligned to disk pages)&lt;/p&gt;

&lt;p&gt;Perhaps I&apos;m wrong about that and this is cheap.&#160; That would change things a lot - but it would be a pretty big shift from how things work today...?&lt;/p&gt;

&lt;p&gt;Anyway, assuming that&apos;s an issue, the next place you could solve alignment is the network, copying from the userpace buffer (unaligned) to some aligned blob of server memory (where &apos;aligned&apos; means a 1-to-1 mapping with file/on disk pages).&#160; The problem is, again, the alignment:&#160; My understanding is you cannot (efficiently) do RDMA on a non 1-to-1 page mapping.&#160; If you have 1 page of memory on 1 side, it needs to map precisely to 1 page of memory on the other side.&#160; Otherwise you end up with a complicated expression describing the memory.&lt;/p&gt;

&lt;p&gt;This means you can&apos;t use RDMA to do the alignment for you.&lt;/p&gt;

&lt;p&gt;I&apos;m pretty confident about the RDMA thing (we should ask Amir, though - I may be wrong), but less sure about the disk thing - Is it possible to efficiently write from unaligned memory to disk? (in the sense of &quot;pages in memory don&apos;t map 1-to-1 to pages in the file&quot;)&#160; (I am assuming all the same issues apply for reads, I&apos;m pretty sure this is the case.)&lt;/p&gt;</comment>
                            <comment id="324591" author="paf0186" created="Mon, 31 Jan 2022 16:03:42 +0000"  >&lt;p&gt;I&apos;d actually be quite excited to be wrong about this, if it&apos;s practical to do - This would be significantly faster and when we implement buffered-as-direct, this would bring buffered-as-direct and DIO in to line performance wise without extra effort&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/warning.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;.&#160; (It was probably possible with cleverness and effort to get them close, but this would spare that effort.)&lt;/p&gt;</comment>
                            <comment id="324741" author="paf0186" created="Tue, 1 Feb 2022 16:54:22 +0000"  >&lt;p&gt;Oleg, Andreas,&lt;/p&gt;

&lt;p&gt;It would be great to get reflections on this - I&apos;ve been working on this and this would be a notable shift if it&apos;s possible to take this approach.&#160; (A good shift, but still a shift.)&lt;/p&gt;</comment>
                            <comment id="324756" author="adilger" created="Tue, 1 Feb 2022 18:12:50 +0000"  >&lt;p&gt;Patrick, my understanding of LNet/IB RDMA details is limited, but it aligns with yours - that the source pages need to be aligned, and we can&apos;t do RDMA from arbitrary offsets. However, I could easily be wrong also. &lt;/p&gt;</comment>
                            <comment id="324760" author="paf0186" created="Tue, 1 Feb 2022 18:45:24 +0000"  >&lt;p&gt;Andreas,&lt;/p&gt;

&lt;p&gt;I was actually hoping you could comment on the bit about requiring alignment for the eventual write to disk:&lt;br/&gt;
&quot;&lt;/p&gt;

&lt;p&gt;As I understand it, the data&#160;&lt;b&gt;eventually&lt;/b&gt; needs to be aligned for the write to disk.&#160; Like, we can&apos;t write from the same page in memory to two pages on disk, or we can&apos;t do it without a significant cost.&#160; (Since every memory page is unaligned to disk pages)&quot;&lt;/p&gt;

&lt;p&gt;Any thoughts there?&#160; That&apos;s the eventual source of the requirement, because otherwise we could RDMA to a set of pages with the same alignment as the user pages and then do the disk I/O from this (entirely unaligned with respect to the file on disk) buffer.&lt;/p&gt;</comment>
                            <comment id="324777" author="adilger" created="Tue, 1 Feb 2022 20:23:42 +0000"  >&lt;p&gt;That would require that the OSS do data copies for every byte. I would rather have the client do the data copies and the OSS can do direct RDMA into the aligned pages and submit them directly to the filesystem. &lt;/p&gt;

&lt;p&gt;For very small IO (few bytes to few pages unaligned) there is a benefit from doing the copy on the OSS because this avoids the partial-page copy to the client. &lt;/p&gt;</comment>
                            <comment id="324778" author="green" created="Tue, 1 Feb 2022 20:29:04 +0000"  >&lt;p&gt;the alignment for write to disk is correct but is a red herring.&lt;/p&gt;

&lt;p&gt;Basically unaligned pages on the client turn into aligned pages on the server because lnet is a copy from unaligned pages into aligned ones pretty much. Thus the server cache is your bounce buffer and you don&apos;t need another one on the client.&lt;/p&gt;

&lt;p&gt;This was already done before, and check the lnet interface - you really give it the beginning of data (in the form of page and offset) and length. And if a perfect 1:1 page to page mapping was required on both ends the different sized pages would never work and they do.&lt;/p&gt;</comment>
                            <comment id="324779" author="paf0186" created="Tue, 1 Feb 2022 20:36:17 +0000"  >&lt;p&gt;&quot;That would require that the OSS do data copies for every byte. I would rather have the client do the data copies and the OSS can do direct RDMA into the aligned pages and submit them directly to the filesystem.&lt;/p&gt;

&lt;p&gt;For very small IO (few bytes to few pages unaligned) there is a benefit from doing the copy on the OSS because this avoids the partial-page copy to the client.&quot;&lt;/p&gt;

&lt;p&gt;Thanks Andreas, that&apos;s what I thought - Just wanted to confirm.&lt;/p&gt;</comment>
                            <comment id="324780" author="paf0186" created="Tue, 1 Feb 2022 20:50:14 +0000"  >&lt;p&gt;&quot;Basically unaligned pages on the client turn into aligned pages on the server because lnet is a copy from unaligned pages into aligned ones pretty much. Thus the server cache is your bounce buffer and you don&apos;t need another one on the client.&quot;&lt;/p&gt;

&lt;p&gt;&quot;&lt;b&gt;because lnet is a copy from unaligned pages into aligned ones pretty much&lt;/b&gt;&quot;&lt;br/&gt;
This isn&apos;t &lt;b&gt;ever&lt;/b&gt; true today - On the client, page cache pages are aligned (in the sense that the nth byte of a page in memory is the nth byte of a page in the file, there is no offset between them), and so are DIO pages.&#160; It may be that LNet &lt;b&gt;can&lt;/b&gt; do this, but it doesn&apos;t today.&lt;/p&gt;

&lt;p&gt;&quot;This was already done before, and check the lnet interface - you really give it the beginning of data (in the form of page and offset) and length. And if a perfect 1:1 page to page mapping was required on both ends the different sized pages would never work and they do.&quot;&lt;/p&gt;

&lt;p&gt;Hmm.&#160; We&apos;ll need to ask Amir.&#160; I&apos;ve been saying a 1-to-1 mapping, but that was shorthand for an &lt;b&gt;aligned&lt;/b&gt; mapping.&#160; Sure, a 64K page can be mapped to 16 4K pages, but that&apos;s still an aligned mapping.&#160; The larger page maps to a fixed number of smaller pages.&lt;/p&gt;

&lt;p&gt;I may just be wrong about this and RDMA can fix alignment for us - that would be great.&lt;/p&gt;</comment>
                            <comment id="324781" author="green" created="Tue, 1 Feb 2022 20:55:03 +0000"  >&lt;p&gt;yes the page cache is of course aligned, we are talking about stuff from userspace.&lt;/p&gt;

&lt;p&gt;See commit e4472c979c809ee4ba8c14b933c2e53713af1845 for unaligned directio implementation there were some additional fixes afterwards&lt;/p&gt;</comment>
                            <comment id="324783" author="paf0186" created="Tue, 1 Feb 2022 20:57:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=ashehata&quot; class=&quot;user-hover&quot; rel=&quot;ashehata&quot;&gt;ashehata&lt;/a&gt; ,&lt;/p&gt;

&lt;p&gt;Question about how RDMA works.&lt;/p&gt;

&lt;p&gt;If I have a sequence of data spanning some number of pages in memory on one node, can I efficiently RDMA that to a set of pages on another node &lt;b&gt;and change the offset in the pages&lt;/b&gt;?&#160; eg, say the data on the source node is offset 1K from where I wish it was, so byte 1024 in page 1 on the source would become byte 0 in page 1 at the destination.&lt;/p&gt;

&lt;p&gt;Then, because the copy started at offset 1024 in page 1 on the source, bytes 3072-4096 of the copy will be from page 2 on the source (the first 1024 bytes of page 2 on the source_, but will go to bytes 3072-4096 of page 1 at the destination.&#160; So there&apos;s not a 1-to-1 mapping between source and destination pages.&lt;/p&gt;

&lt;p&gt;Can that be done efficiently with most RDMA implementations?&#160; My impression was the answer is no.&lt;/p&gt;</comment>
                            <comment id="324786" author="paf0186" created="Tue, 1 Feb 2022 21:45:33 +0000"  >&lt;p&gt;Oleg,&lt;/p&gt;

&lt;p&gt;Thanks for the pointer, my point was just that all users today provide lnet with aligned memory because we don&apos;t support unaligned DIO.&lt;/p&gt;</comment>
                            <comment id="324955" author="shadow" created="Wed, 2 Feb 2022 18:35:21 +0000"  >&lt;p&gt;@Patrik,&lt;/p&gt;

&lt;p&gt;It&apos;s possible. with wr_sge == 2. First SGE covers a first half page, second SGE entry covers a second half page, but these addresses needs to be physically continues except card have a GAPS support.&lt;/p&gt;</comment>
                            <comment id="361741" author="gerrit" created="Mon, 6 Feb 2023 18:12:59 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49913&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49913&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; clio: Add csi_complete&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 56451eeaa985b274575013ae4e1eeb04282d8445&lt;/p&gt;</comment>
                            <comment id="361771" author="gerrit" created="Mon, 6 Feb 2023 20:53:20 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49915&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49915&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Fix return for non-queued aio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 40cb4a09d4188f5ba8c4c88be365f823d4f041a0&lt;/p&gt;</comment>
                            <comment id="362021" author="gerrit" created="Wed, 8 Feb 2023 04:16:45 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49940&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49940&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Add copy of iovec to sub-dio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 1f1a3de4492be7be5e86dffe9ba54a38481ca222&lt;/p&gt;</comment>
                            <comment id="362177" author="gerrit" created="Wed, 8 Feb 2023 19:07:36 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49947&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49947&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: add mm to dio struct&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: cedcde6ddaf042e96b4d43b9e9c1f9535769636e&lt;/p&gt;</comment>
                            <comment id="362791" author="gerrit" created="Tue, 14 Feb 2023 18:38:38 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49987&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49987&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; clio: Trivial DIO cleanups&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: b0bc6fba34c5c6a96450672d5438b2a1d3d06f7e&lt;/p&gt;</comment>
                            <comment id="362792" author="gerrit" created="Tue, 14 Feb 2023 18:38:39 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49988&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49988&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; osc: Add debug&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 154b38a589a0b55e409372980c2108f167ad6376&lt;/p&gt;</comment>
                            <comment id="362793" author="gerrit" created="Tue, 14 Feb 2023 18:38:40 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49989&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49989&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: add debug to aiocp&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: c73e18132137e3d4f10aa65a048dd4ba08edb0c7&lt;/p&gt;</comment>
                            <comment id="362794" author="gerrit" created="Tue, 14 Feb 2023 18:38:41 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49990&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49990&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: add unaligned io to multiop&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 5c68d2bd8e9a1d9b2d68e6db0acc45949b5483c9&lt;/p&gt;</comment>
                            <comment id="362795" author="gerrit" created="Tue, 14 Feb 2023 18:38:41 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49991&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49991&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; clio: Add write to sdio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 1f9441fd8a77decd4252e6e26fa7f5d4565be9bc&lt;/p&gt;</comment>
                            <comment id="362799" author="gerrit" created="Tue, 14 Feb 2023 18:55:59 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49993&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49993&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: unaligned direct_rw_pages&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 2b7c31f273da6c48e18177894c0ba25980c75e07&lt;/p&gt;</comment>
                            <comment id="363425" author="gerrit" created="Mon, 20 Feb 2023 05:25:31 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50067&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50067&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; osc: Don&apos;t include lock for srvlock&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: d0c89ad51745949681408d150d1be2ba984b5fc5&lt;/p&gt;</comment>
                            <comment id="363508" author="gerrit" created="Mon, 20 Feb 2023 22:39:18 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50075&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50075&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: Add additional tests of DIO/BIO&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 48c161f73436629ed77a4f02014fc1c011a98bee&lt;/p&gt;</comment>
                            <comment id="364527" author="gerrit" created="Wed, 1 Mar 2023 16:04:28 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50167&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50167&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Improve sync_io comments&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: f2ab0390f0fc318efa74ffd6f9b17ac19bff781b&lt;/p&gt;</comment>
                            <comment id="364528" author="gerrit" created="Wed, 1 Mar 2023 16:04:28 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50168&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50168&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Convert allocate/get to use pvec&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 48830a00ceae8bafb6b74926265bde91c0101085&lt;/p&gt;</comment>
                            <comment id="364547" author="gerrit" created="Wed, 1 Mar 2023 17:57:47 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50170&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50170&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Rename ldp_aio to sdio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 525b1b31cf91896bad6067703bc2fde16ccde649&lt;/p&gt;</comment>
                            <comment id="368441" author="gerrit" created="Tue, 4 Apr 2023 19:10:38 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50529&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50529&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: Add racing tests of BIO, DIO, AIO&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 58e16cb9742999879ec69b041bdfa9a0bfe2c6b0&lt;/p&gt;</comment>
                            <comment id="368842" author="gerrit" created="Fri, 7 Apr 2023 19:26:50 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50577&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50577&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: add racing tests of aio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 1112c1fb45a049ee3f7da47bc673da6e047e4b3f&lt;/p&gt;</comment>
                            <comment id="369326" author="gerrit" created="Thu, 13 Apr 2023 01:39:11 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50621&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50621&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; osc: Make unaligned DIO async&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 98ee008afe8a08a4d91390b4ff47f131d40e1ea1&lt;/p&gt;</comment>
                            <comment id="369333" author="adilger" created="Thu, 13 Apr 2023 04:31:53 +0000"  >&lt;blockquote&gt;&lt;p&gt;Because unaligned DIO is using a copy of the data from userspace, we can make the writes async on the OST side. Because DIO expects that data be &apos;safe&apos;, we cannot just go entirely async and not wait for RPC completion, but we can wait only for RPC completion and not force a commit sync on the server.&lt;/p&gt;

&lt;p&gt;Consider - for buffered as DIO, we &lt;b&gt;could&lt;/b&gt; just return to userspace once the copy is complete and not worry about the RPC. The problem with that is it creates a lot of issues around things like fsync. And ... actually, no, we couldn&apos;t do this with server side locking, because the data in the client buffer would be unlocked. It is of course possible in theory to do locked parallel DIO, though that would require some other changes.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;as does &lt;a href=&quot;https://stackoverflow.com/questions/5055859/how-are-the-o-sync-and-o-direct-flags-in-open2-different-alike&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this Stack Overflow article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;DIO is expected to avoid caching, so that if &lt;tt&gt;write()&lt;/tt&gt; returns to userspace, then a &lt;tt&gt;read()&lt;/tt&gt; of the same offset expects to see the previous writer&apos;s data. If the write() call is held until the client has a reply to the RPC (not just RPC sent, but doesn&apos;t have to actually be committed to the OST) then the write/read ordering is maintained.&lt;/p&gt;

&lt;p&gt;If the RPC-pinned data on the client is not visible to userspace, then there isn&apos;t an immediate consistency issue. If only the OST crashes, then the writes would be replayed (in transno order) from the clients so there shouldn&apos;t be any out-of-order writes or reads. If only the client crashes, then the writes would eventually commit on the OST.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;The second &lt;em&gt;expectation&lt;/em&gt; of DIO is data persistence after &lt;tt&gt;write()&lt;/tt&gt; returns, and generally no need to call &lt;tt&gt;fsync()&lt;/tt&gt; on a file. If &lt;b&gt;BOTH a client and OST crash&lt;/b&gt; before the writes are committed, then that client&apos;s writes would be lost, and possibly also later writes from other clients due to recovery abort from missing transno.&lt;/p&gt;

&lt;p&gt;I suspect that many applications using &lt;b&gt;DIO&lt;/b&gt; would &lt;em&gt;expect&lt;/em&gt; that data is persistent after a DIO &lt;tt&gt;write()&lt;/tt&gt; call returns, so this behavior may need to be a configurable parameter (even though it isn&apos;t strictly required). That said, there is separately &lt;tt&gt;O_SYNC&lt;/tt&gt;/&lt;tt&gt;O_DSYNC&lt;/tt&gt; in addition to &lt;tt&gt;O_DIRECT&lt;/tt&gt;, so files using &lt;b&gt;only&lt;/b&gt; &lt;tt&gt;O_DIRECT&lt;/tt&gt; should not necessarily expect data persistence after &lt;tt&gt;write()&lt;/tt&gt; return without &lt;tt&gt;fsync()&lt;/tt&gt;.&#160; The &lt;tt&gt;open(2)&lt;/tt&gt; man page seems to confirm this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;O_DIRECT (Since Linux 2.4.10)
    The O_DIRECT flag on its own makes an effort to transfer data
    synchronously, but does not give the guarantees of the O_SYNC flag
    that data and necessary metadata are transferred.  To guarantee
    synchronous I/O, O_SYNC must be used in addition to O_DIRECT. 

    :
     
    The behaviour of O_DIRECT with NFS will differ from local file systems.
    Older kernels, or kernels configured in certain ways, may not support
    this combination.  The NFS protocol does not support passing the flag
    to the server, so O_DIRECT I/O will bypass the page cache only on the
    client; the server may still cache the I/O. The client asks the server
    to make the I/O synchronous to preserve the synchronous semantics of
    O_DIRECT.  Some servers will perform poorly under these circumstances,
    especially if the I/O size is small. Some servers may also be configured
    to lie to clients about the I/O having reached stable storage; this will
    avoid the performance penalty at some risk to data integrity in the event
    of server power failure.  The Linux NFS client places no alignment
  &#160; restrictions on O_DIRECT I/O.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;If the IOR IO engine was using AIO/DIO, or io_uring, then delaying write completion until OST commit would avoid this issue completely, and would only be limited by the amount of RAM on the client. This would be similar if unaligned &lt;b&gt;BIO&lt;/b&gt; &lt;tt&gt;write()&lt;/tt&gt; was treated as lockless async DIO &lt;tt&gt;write()&lt;/tt&gt; (as with this patch). There is no expectation for consistency after BIO &lt;tt&gt;write()&lt;/tt&gt; return until &lt;tt&gt;fsync()&lt;/tt&gt; is called (which should send an OST_SYNC RPC if no writes are pending, or send the last write RPC without BRW_ASYNC) and then wait for last_committed to drop all unstable writes for that file.&lt;/p&gt;</comment>
                            <comment id="369376" author="paf0186" created="Thu, 13 Apr 2023 13:59:20 +0000"  >&lt;p&gt;Andreas,&lt;/p&gt;

&lt;p&gt;Yes, sorry - that was a bit stream of consciousness on my part; I blame the late hour.&#160; When I started rambling about fsync, I was considering how to maintain the write visibility aspect if we held things in our DIO buffer, in order to make writes fully async.&#160; It gets ugly quickly, since you have to implement a flushing mechanism, etc, etc, and you&apos;re fairly quickly staring at re-implementing the page cache, so you do a ton of work and lose most of the benefit of DIO along the way.&#160; It&apos;s a bad idea. &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;I agree completely about the DIO and BIO guarantees.&#160; (More shortly)&lt;/p&gt;</comment>
                            <comment id="369377" author="paf0186" created="Thu, 13 Apr 2023 14:04:00 +0000"  >&lt;p&gt;So, you make a comment here which worries me, I&apos;d like to check it:&lt;br/&gt;
&quot;There is no expectation for consistency after BIO&#160;&lt;tt&gt;write()&lt;/tt&gt;&#160;return until&#160;&lt;tt&gt;fsync()&lt;/tt&gt; is called&quot;&lt;/p&gt;

&lt;p&gt;If you mean &quot;consistency&quot; as in &quot;O_SYNC&quot; type guarantees, where data is 100% safely on disk, then yes, no such expectation for BIO.&#160; If you mean write visibility, then no - Any write() which has returned to userspace must be visible to any read which starts after that return to userspace.&#160; (I think of this as the &quot;forward progression of time is guaranteed&quot;, but that&apos;s special relativity leaking in. &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;)&lt;/p&gt;

&lt;p&gt;I just wanted to highlight this point - I may be misunderstanding you, but it&apos;s a very key point, so I want to make sure we&apos;re on the same page.&lt;/p&gt;</comment>
                            <comment id="369380" author="paf0186" created="Thu, 13 Apr 2023 14:08:58 +0000"  >&lt;p&gt;Yingjin asked &quot;What about the aligned DIO which also wants not to force journal sync on OST for each write?&quot;&lt;br/&gt;
Which is a fun question, and tied in to what we&apos;re talking about here, so I decided to put my explanation here. &#160;It has a lot of overlap with what Andreas just said.&lt;br/&gt;
----------------&lt;br/&gt;
DIO has an expectation that the data be &apos;safe&apos; after a write, basically similar to if they used O_SYNC. &#160;This isn&apos;t in the spec (if you look it up, you can find people arguing about this), but in practice, people expect it. &#160;This is, arguably, the only &lt;b&gt;requirement&lt;/b&gt; for DIO, since the &quot;no caching&quot; thing is an expectation that isn&apos;t always met (DIO can fall back to BIO under certain circumstances in many Linux file systems).&lt;/p&gt;

&lt;p&gt;So how do we guarantee data is &apos;safe&apos; after a write completes? &#160;Let&apos;s compare some things.&lt;br/&gt;
Buffered IO has a weak guarantee: a write completes once the data is in cache, so if the client crashes, data is lost. &#160;If the server crashes/goes away before the client sends the RPC, the client just waits. &#160;When the client sends an RPC, we &apos;pin&apos; the pages so they cannot be removed from the page cache, but the we do mark the pages as clean (so now the write is &apos;really&apos; done from the VFS perspective). &#160;Anyway, we pin the pages so we can replay the RPC if the server crashes, and then we unpin them on commit.&lt;/p&gt;

&lt;p&gt;Normal direct IO has the strongest possible guarantee: A write completes once the server has fully committed the data and the associated journal. &#160;There is no possibility of data loss once a write completes. &#160;But, also note:&lt;br/&gt;
Normal DIO is done directly from userspace pages. &#160;This means we can&apos;t keep them pinned for RPC replay after we return on write(), because then the user can change them. &#160;This means we have to do a full sync/commit on the server.&lt;/p&gt;

&lt;p&gt;Because unaligned direct I/O has a buffer, we can do something different. &#160;Because we have our own copy of the data, it is possible to complete after we have sent the RPC to the server and received a reply. &#160;This means we are set up for replay. &#160;So this gives a &lt;b&gt;partial&lt;/b&gt; safety guarantee:&lt;br/&gt;
If the client crashes, the server already has the data and will finish committing it.&lt;br/&gt;
If the server crashes, the client will replay the RPC.&lt;/p&gt;

&lt;p&gt;This is only possible because we have our own buffer.&lt;/p&gt;

&lt;p&gt;So, basically, this is a &apos;reduced&apos; version of the normal DIO &apos;sync&apos;/safety guarantee, where it &lt;b&gt;is&lt;/b&gt; possible to lose data after a DIO write, but should be very rare. &#160;(This is why I consider it likely to be acceptable.)&lt;/p&gt;

&lt;p&gt;As Andreas suggests, we should probably make this behavior tunable, because it is a reduction in the safety guarantee - it opens up a small-ish window for data loss. &#160;It&apos;s still safer than buffered I/O, but less safe than &apos;standard&apos; DIO.&lt;/p&gt;

&lt;p&gt;(Answer continues in next post...)&lt;/p&gt;</comment>
                            <comment id="369384" author="paf0186" created="Thu, 13 Apr 2023 14:12:40 +0000"  >&lt;p&gt;Now, as Yingjin asked, what about aligned DIO that wants to skip the commit?&lt;br/&gt;
As explained above, the issue is we &lt;b&gt;must&lt;/b&gt; have our own copy of the data for replay, or we cannot skip the commit. &#160;Once we return from write(), the user is allowed to change the data they submitted (obviously &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;). &#160;This means we need our own copy to safely replay an RPC.&lt;/p&gt;

&lt;p&gt;So this means we would be allocating a buffer and doing a data copy for small direct I/O writes.&#160; This has a cost, and it makes large DIO writes much slower.&#160; (This means large unaligned DIO is much faster than buffered I/O, but much slower than large &lt;b&gt;aligned&lt;/b&gt; DIO, which does not have to do the data copy.)&lt;/p&gt;

&lt;p&gt;However, the cost of allocation + copy is small for small DIO, and we can them make the commit async.&#160; So it probably &lt;b&gt;does&lt;/b&gt; make sense to do &apos;small&apos; DIO (for a definition of &apos;small&apos; that we have to figure out...) as &apos;async commit&apos;.&#160; The idea of DIO with async commit is something I only thought of yesterday, and it hadn&apos;t occurred to me to do this for other small DIO.&#160; So I am still thinking about it. &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="369415" author="adilger" created="Thu, 13 Apr 2023 16:50:47 +0000"  >&lt;p&gt;Patrick, you are right that for BIO I meant to say that users do not have any expectation about&#160;&lt;b&gt;persistence&lt;/b&gt;&#160;after&#160;&lt;tt&gt;write()&lt;/tt&gt;&#160;return, but POSIX requires read-after-write&#160;&lt;b&gt;ordering&lt;/b&gt;&#160;guarantees that we cannot break.&#160;&lt;/p&gt;</comment>
                            <comment id="371846" author="gerrit" created="Wed, 10 May 2023 22:20:00 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50920&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50920&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: test for AIO fallback across stripe&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 40042cc2e39994df6c460f3707a7d985973e9196&lt;/p&gt;</comment>
                            <comment id="372016" author="gerrit" created="Thu, 11 May 2023 21:19:53 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50966&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50966&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: wait for partially successful aio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 312019d6302e2d4ef3c515a6ee294bbee781660f&lt;/p&gt;</comment>
                            <comment id="373073" author="gerrit" created="Sun, 21 May 2023 16:16:27 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/51075&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/51075&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; obd: Reserve unaligned DIO connect flag&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 40d5c59b89de496e837c9021a250b0dbb3b74588&lt;/p&gt;</comment>
                            <comment id="373367" author="gerrit" created="Wed, 24 May 2023 18:20:07 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/51125&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/51125&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: add flag to disable unaligned DIO&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: f8e7ae17326a420f25b3249f3a7158f2876290a9&lt;/p&gt;</comment>
                            <comment id="373368" author="gerrit" created="Wed, 24 May 2023 18:20:08 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/51126&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/51126&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Implement unaligned DIO connect flag&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 2b7ee4aec08c34f966e35d7b41fee13854f2c9d3&lt;/p&gt;</comment>
                            <comment id="374008" author="gerrit" created="Wed, 31 May 2023 19:02:20 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49915/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49915/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Fix return for non-queued aio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 8a5bb81f774b9d41f1009b07010372fa9cd03a62&lt;/p&gt;</comment>
                            <comment id="374168" author="gerrit" created="Thu, 1 Jun 2023 21:01:23 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/51194&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/51194&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: eviction debugging&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 445c1aaca6d910fbc51bece70f3be5fd8d8defb4&lt;/p&gt;</comment>
                            <comment id="374175" author="gerrit" created="Thu, 1 Jun 2023 21:24:08 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/51195&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/51195&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Fake change to force testing&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 763c6925f2b0f7f6f9d8f531e17ef1318a28c0b7&lt;/p&gt;</comment>
                            <comment id="376798" author="gerrit" created="Wed, 28 Jun 2023 21:46:02 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50067/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50067/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; osc: Don&apos;t include lock for srvlock&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 9a34ec2b09864a93339fd8c90d358debea9703f9&lt;/p&gt;</comment>
                            <comment id="376799" author="gerrit" created="Wed, 28 Jun 2023 21:46:13 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49987/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49987/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; clio: Trivial DIO cleanups&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: a667cfac0e70cd4da7c70ef28ffdcc25136996b2&lt;/p&gt;</comment>
                            <comment id="376800" author="gerrit" created="Wed, 28 Jun 2023 21:46:31 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49988/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49988/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; osc: Add debug&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 6d1045d63a5bf33a1f26e0fd939305bdd49767f3&lt;/p&gt;</comment>
                            <comment id="378629" author="gerrit" created="Fri, 14 Jul 2023 03:06:49 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49989/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49989/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: add debug to aiocp&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: bd30b49355c071183ed29d15e2d2c6b78f92bda7&lt;/p&gt;</comment>
                            <comment id="378630" author="gerrit" created="Fri, 14 Jul 2023 03:07:00 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50168/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50168/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Convert allocate/get to use pvec&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: dfdfda0ba495d8b3e27601f43ac298fea43c4194&lt;/p&gt;</comment>
                            <comment id="378631" author="gerrit" created="Fri, 14 Jul 2023 03:07:09 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50170/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50170/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Rename ldp_aio to sdio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 7c416273ad1a8f55990d430221c16e6dd43ea7e0&lt;/p&gt;</comment>
                            <comment id="380301" author="gerrit" created="Thu, 27 Jul 2023 07:18:09 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50167/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50167/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Improve sync_io comments&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 8fa28e42ce38cb3b6834284f7793e3e74e776c75&lt;/p&gt;</comment>
                            <comment id="380703" author="gerrit" created="Mon, 31 Jul 2023 14:37:08 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/51815&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/51815&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: patch for testing&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 32f9fef79f68a31ce1063b027c562b9c7a3b1106&lt;/p&gt;</comment>
                            <comment id="381528" author="gerrit" created="Mon, 7 Aug 2023 03:48:25 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49990/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49990/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: add unaligned io to multiop&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 84376bf67446d7b061d032719f335edc12a932ff&lt;/p&gt;</comment>
                            <comment id="383349" author="gerrit" created="Tue, 22 Aug 2023 23:51:59 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52044&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52044&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: janitor testing for csi_complete (2)&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 722198b9e8fae940b253f9beba612b682fb6b3b0&lt;/p&gt;</comment>
                            <comment id="383350" author="gerrit" created="Tue, 22 Aug 2023 23:57:23 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52045&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52045&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: janitor testing for csi_complete (3)&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: b5da30c10e4625e333f146a0bcca62a31ff402bd&lt;/p&gt;</comment>
                            <comment id="383351" author="gerrit" created="Tue, 22 Aug 2023 23:57:24 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52046&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52046&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: janitor testing for csi_complete (4)&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: b42a70c79b8e343f2af830bc6b5d0b770f8f0453&lt;/p&gt;</comment>
                            <comment id="383352" author="gerrit" created="Tue, 22 Aug 2023 23:57:25 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52047&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52047&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: janitor testing for csi_complete (5)&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 5d7cb36db4692d80b785b53c4bb72e3de891c583&lt;/p&gt;</comment>
                            <comment id="383353" author="gerrit" created="Tue, 22 Aug 2023 23:57:25 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52048&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52048&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: janitor testing for csi_complete (6)&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 3cd760fe020f0ce001bdadfea4a5c04eaeb474ca&lt;/p&gt;</comment>
                            <comment id="383354" author="gerrit" created="Tue, 22 Aug 2023 23:57:26 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52049&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52049&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: janitor testing for csi_complete (7)&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 268a58e8485a51569ea3faef8ef4b1f2826096f0&lt;/p&gt;</comment>
                            <comment id="383355" author="gerrit" created="Tue, 22 Aug 2023 23:57:27 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52050&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52050&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: janitor testing for csi_complete (8)&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 8a5804fcc69fbd34a6b9e92e8287cdbcf004ed94&lt;/p&gt;</comment>
                            <comment id="383475" author="gerrit" created="Wed, 23 Aug 2023 23:10:57 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52057&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52057&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: make page_list_&lt;/p&gt;
{add,del}
&lt;p&gt; symmetric&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 7c5eb60a6c9260b3816c760e449c7f14a35ef688&lt;/p&gt;</comment>
                            <comment id="383499" author="gerrit" created="Thu, 24 Aug 2023 04:31:13 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50529/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50529/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; tests: Add racing tests of BIO, DIO&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 43c3a804fe23c96de4f76ae9f1f8ba909558433d&lt;/p&gt;</comment>
                            <comment id="383500" author="gerrit" created="Thu, 24 Aug 2023 04:31:22 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49991/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49991/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; clio: Add write to sdio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 89f489ef9a18b5fea0571e2606dfdf064777626b&lt;/p&gt;</comment>
                            <comment id="383501" author="gerrit" created="Thu, 24 Aug 2023 04:31:31 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49940/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49940/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Add copy of iovec to sub-dio&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: d011e65a8936bc105e19b3fad64bfdece455de61&lt;/p&gt;</comment>
                            <comment id="383506" author="gerrit" created="Thu, 24 Aug 2023 04:33:23 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/51075/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/51075/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; obd: Reserve unaligned DIO connect flag&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 4c96cbf89dba5e4bf8ddf98a18b72142c22a4289&lt;/p&gt;</comment>
                            <comment id="384887" author="gerrit" created="Wed, 6 Sep 2023 06:14:43 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49913/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49913/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; clio: Add csi_complete&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: a2b722214a99c8c65fb764a67770b47a1195691a&lt;/p&gt;</comment>
                            <comment id="384888" author="gerrit" created="Wed, 6 Sep 2023 06:14:59 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49947/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49947/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: add mm to dio struct&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 7df8bd69fbe59afba0a43fe19e7a5b1d2c3fd115&lt;/p&gt;</comment>
                            <comment id="386161" author="gerrit" created="Fri, 15 Sep 2023 15:38:33 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52391&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52391&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: fail unaligned DIO for RDMA pages&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 4f72f0b4b5277eca792bad33b0e6df4df9d32ce1&lt;/p&gt;</comment>
                            <comment id="387493" author="gerrit" created="Thu, 28 Sep 2023 07:58:46 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49993/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49993/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: unaligned direct_rw_pages&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 40bb067da1f40714af4f77d24e840fdb6285b08e&lt;/p&gt;</comment>
                            <comment id="387494" author="gerrit" created="Thu, 28 Sep 2023 07:59:08 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/45616/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/45616/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; clio: bounce buffer for unaligned DIO&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 7194eb6431d2ef7245ef3b13394b60e220145187&lt;/p&gt;</comment>
                            <comment id="389100" author="gerrit" created="Thu, 12 Oct 2023 14:52:45 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;pfarrell@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52668&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52668&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: udio and encryption&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 5ea5a9c13a81d0168137230b74b4450ce66de54a&lt;/p&gt;</comment>
                            <comment id="391587" author="gerrit" created="Fri, 3 Nov 2023 04:02:01 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/51125/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/51125/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: add flag to disable unaligned DIO&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 33ed79ba61a3275519c897557407619d576a9dc2&lt;/p&gt;</comment>
                            <comment id="393495" author="gerrit" created="Sat, 18 Nov 2023 21:41:47 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/51126/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/51126/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13805&quot; title=&quot;i/o path: Unaligned direct i/o&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13805&quot;&gt;LU-13805&lt;/a&gt; llite: Implement unaligned DIO connect flag&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 0e6e60b1233b08952c338b2c4f121ef749a99f8b&lt;/p&gt;</comment>
                            <comment id="400596" author="adilger" created="Mon, 22 Jan 2024 15:36:00 +0000"  >&lt;p&gt;Patrick, a number of subtests added as part of this series are failing during sanity interop testing - 119h, 119i, &lt;br/&gt;
&lt;a href=&quot;https://testing.whamcloud.com/test_sets/dc77145c-b7d3-4010-a7a2-f8435f9353ff&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://testing.whamcloud.com/test_sets/dc77145c-b7d3-4010-a7a2-f8435f9353ff&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Could you please push a patch for master to add a version check to those subtests with:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Fixes: 7194eb6431 (&quot;LU-13805 clio: bounce buffer for unaligned DIO&quot;)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="401462" author="paf0186" created="Fri, 26 Jan 2024 18:39:14 +0000"  >&lt;p&gt;I opened &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-17473&quot; title=&quot;fix and tests for partially successful AIO&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-17473&quot;&gt;LU-17473&lt;/a&gt; to take these two patches, which aren&apos;t actually related to unaligned DIO:&lt;br/&gt;
llite: wait for partially successful aio&#160;&lt;br/&gt;
&lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50966/50&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/50966/&lt;/a&gt;&lt;br/&gt;
tests: add racing tests of aio&#160;&lt;br/&gt;
&lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50966/50&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/50577/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="401463" author="paf0186" created="Fri, 26 Jan 2024 18:39:24 +0000"  >&lt;p&gt;Yes, sure - I&apos;ll add those checks.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10324">
                    <name>Cloners</name>
                                                                <inwardlinks description="is cloned by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="10666">LU-247</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="60086">LU-13814</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="80149">LU-17450</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="60017">LU-13802</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="60010">LU-13799</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78190">LU-17156</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78493">LU-17215</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="56411">LU-12550</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78385">LU-17194</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="79985">LU-17422</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="80054">LU-17433</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="60009">LU-13798</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="76999">LU-16964</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i015kn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>