<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:28:31 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-16613] Future: folio_batch BIO write path</title>
                <link>https://jira.whamcloud.com/browse/LU-16613</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Prototype support for folio_batch support on page cache backed buffer I/O path.&lt;/p&gt;

&lt;p&gt;Relies on a patched kernel to provide:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;generic_perform_batch_write&lt;/li&gt;
	&lt;li&gt;aops-&amp;gt;write_batch_begin  and aops-&amp;gt;write_patch_end&lt;/li&gt;
	&lt;li&gt;filemap_dirty_folio_batched&lt;/li&gt;
	&lt;li&gt;grab_cache_folios_fast&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="74928">LU-16613</key>
            <summary>Future: folio_batch BIO write path</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</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="stancheff">Shaun Tancheff</assignee>
                                    <reporter username="stancheff">Shaun Tancheff</reporter>
                        <labels>
                    </labels>
                <created>Fri, 3 Mar 2023 07:03:36 +0000</created>
                <updated>Wed, 8 Mar 2023 10:01:40 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="364791" author="gerrit" created="Fri, 3 Mar 2023 07:32:51 +0000"  >&lt;p&gt;&quot;Shaun Tancheff &amp;lt;shaun.tancheff@hpe.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50194&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50194&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-16613&quot; title=&quot;Future: folio_batch BIO write path&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-16613&quot;&gt;LU-16613&lt;/a&gt; clio: Use folio_batch write path&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 6dc4f8a03385bd507f5ebb5d67503c10e05053c7&lt;/p&gt;</comment>
                            <comment id="364829" author="paf0186" created="Fri, 3 Mar 2023 15:15:17 +0000"  >&lt;p&gt;Shaun,&lt;/p&gt;

&lt;p&gt;This is very exciting, I didn&#8217;t know the requisite folio stuff existed yet - have you been able to benchmark this at all? &#160;And is there some form of read batch available as well? &#160;The read path is also stuck in page cache work as its main performance limitation.&lt;/p&gt;</comment>
                            <comment id="364830" author="paf0186" created="Fri, 3 Mar 2023 15:17:01 +0000"  >&lt;p&gt;Ah, I see it requires a patched kernel. &#160;Can you say more about this in general? Where are these patches from, are they expected upstream, etc, etc&lt;/p&gt;</comment>
                            <comment id="364923" author="stancheff" created="Sun, 5 Mar 2023 13:15:05 +0000"  >&lt;p&gt;I have patches here:&lt;br/&gt;
    &lt;a href=&quot;https://github.com/stancheff/linux/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/stancheff/linux/&lt;/a&gt;&lt;br/&gt;
    branch: dedupe-v1&lt;/p&gt;

&lt;p&gt;The basic idea is to enable &apos;batch&apos; adding to the page cache (and batch dirty pages). I did the first pass on the write path.&lt;/p&gt;

&lt;p&gt;There is a device mapper that can be used to do local perf testing, ex:&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;sudo mkdir -p /vol/fcp 
echo &quot;0 `sudo blockdev --getsz /dev/vda` dedupe /dev/vda 0&quot; | sudo dmsetup create dedupe
sudo mkfs.ext4 -F -E &apos;lazy_itable_init=0 packed_meta_blocks=1&apos; /dev/mapper/dedupe
sudo mount /dev/mapper/dedupe /vol/fcp
sudo fio --filename=/vol/fcp/fio.bin \
  --size=100GB \
  --buffered=1 \
  --rw=write \
  --bs=64k \
  --buffer_pattern=0x00000000 \
  --ioengine=sync \
  --iodepth=64 \
  --runtime=120 \
  --numjobs=16 \
  --time_based \
  --group_reporting \
  --name=throughput-test-job \
  --eta-newline=1
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Locally I see  2 G/s buffered. Still a long ways from direct I/O which is closer to 12G/s&lt;/p&gt;</comment>
                            <comment id="365245" author="stancheff" created="Wed, 8 Mar 2023 10:01:40 +0000"  >&lt;p&gt;The read path is batch&apos;d:&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; generic_file_read_iter() 
    filemap_read()
      filemap_get_pages()
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    </comments>
                    <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|i03fl3:</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>