<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:25:58 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-16321] Rewrite regression discovered using obdfilter-survey on OST with Lustre 2.15 but also impacts fiemap logic performance</title>
                <link>https://jira.whamcloud.com/browse/LU-16321</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;On 2.12, we observe a 30 GiB/s throughput, while on 2.15, we see 25 GiB/s.&lt;/p&gt;

&lt;p&gt;Both perf captures and ftrace data (with the help of git blame) have led me down the path to a root cause:&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;commit d0337cab8e845efcdbfb9e26e573feb18f28e303
Author: Mr NeilBrown &amp;lt;neilb@suse.de&amp;gt;
Date: &#160; Wed Dec 9 13:00:16 2020 +1100
&#160;
&#160; &#160; LU-14195 osd: don&apos;t use set_fs() for -&amp;gt;fiemap() calls.
&#160;
&#160; &#160; -&amp;gt;fiemap() only accesses kernel-space data, so does not need, and
&#160; &#160; never has needed, set_fs() calls.
&#160; &#160; In Linux 5.10, these calls are deprecated.
&#160; &#160; So remove the unnecessary code.&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If I revert the above commit for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14195&quot; title=&quot;Support for linux kernel version 5.10&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14195&quot;&gt;LU-14195&lt;/a&gt;, the obdfilter-survey rewrite throughput is immediately restored.&lt;/p&gt;

&lt;p&gt;Reverting this commit, performance is actually a bit improved to 31 GiB/s.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Note -&lt;/b&gt;&#160;Example obdfilter-survey command:&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; tests_str=&quot;write rewrite&quot; nobjlo=1 nobjhi=1 thrlo=1024 thrhi=1024 rszlo=4096 rszhi=4096 size=524288 obdfilter-survey&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#8211;&lt;/p&gt;

&lt;p&gt;After speaking with Alexander Boyko about this exact issue and the impact it will have once we move to a post 5.10 Linux kernel:&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;Petros Koutoupis&#160;&#160;8:06 AM
Hello. I do have a question though. Does it make sense to you how d0337cab8 would impact the obdflilter-survey rewrites (by that much too)?

Alexander Boyko&#160;&#160;8:18 AM
yeap I had a discussion with team. obdfilter executes from ioctl and doesnot have KERNEL_DS

Petros Koutoupis&#160;&#160;8:18 AM
I ask only because in 5.10 set_fs is deprecated
ok

Alexander Boyko&#160;&#160;8:20 AM
so without a revert it fall to copy_from_user, it returns EFAULT and fiemap handle this as worst case
this should not affect general Lustre IO &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;More comments from Alexander:&lt;/p&gt;

&lt;p&gt;Unfortunately the &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14195&quot; title=&quot;Support for linux kernel version 5.10&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14195&quot;&gt;LU-14195&lt;/a&gt; patch has a more serious impact on whole Lustre, not only obdfilter-survey. Yesterday I discussed it with Andrew Perepechko, the current idea is&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-c&quot;&gt;
 ldiskfs_fiemap..()-&amp;gt;..-&amp;gt;copy_to_user() &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;returns EFAULT. EFAULT leads to unmapped block logic, so Lustre would call block allocator, calculate grants, call quota logic for overwrite. All Lustre ioctl requests are affected. There is no simple way for fixing it at new kernels, since all parts with set_fs() were changed to ITER_KVEC. But using set_fs() for fiemap is only Lustre trick, and internal fiemap logic does not support iterator. I think &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14195&quot; title=&quot;Support for linux kernel version 5.10&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14195&quot;&gt;LU-14195&lt;/a&gt; should be reverted until 5.x kernel.&lt;/p&gt;</description>
                <environment></environment>
        <key id="73304">LU-16321</key>
            <summary>Rewrite regression discovered using obdfilter-survey on OST with Lustre 2.15 but also impacts fiemap logic performance</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="koutoupis">Petros Koutoupis</assignee>
                                    <reporter username="koutoupis">Petros Koutoupis</reporter>
                        <labels>
                    </labels>
                <created>Thu, 17 Nov 2022 15:07:59 +0000</created>
                <updated>Sat, 7 Jan 2023 14:58:02 +0000</updated>
                            <resolved>Sat, 7 Jan 2023 14:58:02 +0000</resolved>
                                                    <fixVersion>Lustre 2.16.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="353556" author="gerrit" created="Fri, 18 Nov 2022 18:40:33 +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/+/49190&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49190&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-16321&quot; title=&quot;Rewrite regression discovered using obdfilter-survey on OST with Lustre 2.15 but also impacts fiemap logic performance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-16321&quot;&gt;&lt;del&gt;LU-16321&lt;/del&gt;&lt;/a&gt; osd: Allow fiemap on user and kernel buffers&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 888f48ba31996d7183f5a0cce296198ad09fabcc&lt;/p&gt;</comment>
                            <comment id="358205" author="gerrit" created="Sat, 7 Jan 2023 07:53:18 +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/+/49190/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49190/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-16321&quot; title=&quot;Rewrite regression discovered using obdfilter-survey on OST with Lustre 2.15 but also impacts fiemap logic performance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-16321&quot;&gt;&lt;del&gt;LU-16321&lt;/del&gt;&lt;/a&gt; osd: Allow fiemap on kernel buffers&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 5cd5a49c7213315d83bca54a2eee97ba57d256cc&lt;/p&gt;</comment>
                            <comment id="358229" author="pjones" created="Sat, 7 Jan 2023 14:58:02 +0000"  >&lt;p&gt;Landed for 2.16&lt;/p&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|i035zz:</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>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10021"><![CDATA[2]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>