<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:00:39 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-13365] spin_lock in after_reply() eat up most of cpu</title>
                <link>https://jira.whamcloud.com/browse/LU-13365</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;There are two clients, but one of client was 25% slower write than other client. According to an framegraph on CPU time of each client, client spent amount of CPU time with spin_lock at after_reply(). However, fast client didn&apos;t show that cpu time on after_reply().&lt;br/&gt;
The workload is simple 1MB, FPP with IOR. (mpirun -np 16 ior -t 1m -b 16g -e -F -vv -o /fast/file -w)&lt;br/&gt;
Here is two client&apos;s node information and performance results. &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;fast client (2 x Platinum 8160 CPU, 192GB memory, 1 x IB-EDR)
Max Write: 11219.97 MiB/sec (11765.00 MB/sec)
slow client (1 x Gold 5218 CPU, 96GB memory, 1 x IB-HDR100)
Max Write: 9278.14 MiB/sec (9728.84 MB/sec)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>master</environment>
        <key id="58395">LU-13365</key>
            <summary>spin_lock in after_reply() eat up most of cpu</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="wshilong">Wang Shilong</assignee>
                                    <reporter username="sihara">Shuichi Ihara</reporter>
                        <labels>
                    </labels>
                <created>Tue, 17 Mar 2020 09:30:22 +0000</created>
                <updated>Sun, 28 Jun 2020 14:45:57 +0000</updated>
                            <resolved>Sun, 28 Jun 2020 14:45:57 +0000</resolved>
                                    <version>Lustre 2.14.0</version>
                                    <fixVersion>Lustre 2.14.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="265435" author="wshilong" created="Tue, 17 Mar 2020 09:39:35 +0000"  >&lt;p&gt;Some thoughts on the problem, it looks imp_lock is hot.&lt;/p&gt;

&lt;p&gt;The good start could split imp_lock, etc use seperated spinlock to protect lists head, since currently it seems imp_lock protect many information.&lt;/p&gt;

&lt;p&gt;Another point is this seems still global list here, it might be possible that split lists head to several? even more potential per-cpu list head. And we could merge these list_head when replaying happen, but this might break some optimizations that we need do for recovery.&lt;/p&gt;
</comment>
                            <comment id="265442" author="wshilong" created="Tue, 17 Mar 2020 11:58:38 +0000"  >&lt;p&gt;just notice one of main difference is it looks there are more after_reply() samples with slower clients. and double ptlrpcd() called in slower clients, it might be related to some client LNET or cpu partitions conf?&lt;/p&gt;

&lt;p&gt;This might help explain why slow client having more contention problems with imp_lock.&lt;/p&gt;</comment>
                            <comment id="265527" author="gerrit" created="Wed, 18 Mar 2020 07:58:26 +0000"  >&lt;p&gt;Wang Shilong (wshilong@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/37969&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37969&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13365&quot; title=&quot;spin_lock in after_reply() eat up most of cpu&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13365&quot;&gt;&lt;del&gt;LU-13365&lt;/del&gt;&lt;/a&gt; ldlm: check slv and limit before updating&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: a4ac84f7dbe85a82c3a41d11e1d0fa28350992af&lt;/p&gt;</comment>
                            <comment id="273167" author="sihara" created="Thu, 18 Jun 2020 01:42:33 +0000"  >&lt;p&gt;I ddin&apos;t see big improvements from patch &lt;a href=&quot;https://review.whamcloud.com/37969&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37969&lt;/a&gt; at this point. rather than it, enough max_cached_mb helps regardless with/without patch.&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;1 x client, Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz, 96GB RAM, 1 x HDR100

# mpirun --allow-run-as-root -np 16 /work/tools/bin/ior -t 1m -b 16g -e -F -vv -o /ai400/file -w -i 3 -d 10
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;max_cached_mb=47549 (default)&lt;br/&gt;
 master without patch&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;access    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s) iter
------    ---------  ---------- ---------  --------   --------   --------   -------- ----
write     9402       16777216   1024.00    0.002728   27.88      0.664711   27.88      0   
write     9107       16777216   1024.00    0.002969   28.79      1.86       28.79      1   
write     9463       16777216   1024.00    0.002562   27.70      1.09       27.70      2   
Max Write: 9462.51 MiB/sec (9922.16 MB/sec)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;master with patch&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;access    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s) iter
------    ---------  ---------- ---------  --------   --------   --------   -------- ----
write     9289       16777216   1024.00    0.002968   28.22      1.45       28.22      0   
write     9392       16777216   1024.00    0.002479   27.91      1.87       27.91      1   
write     9227       16777216   1024.00    0.002484   28.41      1.91       28.41      2   
Max Write: 9391.89 MiB/sec (9848.11 MB/sec)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;max_cached_mb=80000&lt;br/&gt;
 master without patch&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;access    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s) iter
------    ---------  ---------- ---------  --------   --------   --------   -------- ----
write     11336      16777216   1024.00    0.002728   23.12      0.781030   23.12      0   
write     11154      16777216   1024.00    0.002595   23.50      0.665123   23.50      1   
write     11377      16777216   1024.00    0.002804   23.04      1.12       23.04      2   
Max Write: 11377.33 MiB/sec (11930.00 MB/sec)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;master with patch&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;access    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s) iter
------    ---------  ---------- ---------  --------   --------   --------   -------- ----
write     11316      16777216   1024.00    0.003285   23.17      0.866756   23.17      0   
write     11282      16777216   1024.00    0.002597   23.24      0.355386   23.24      1   
write     11128      16777216   1024.00    0.002604   23.56      1.40       23.56      2   
Max Write: 11315.76 MiB/sec (11865.43 MB/sec)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="273170" author="sihara" created="Thu, 18 Jun 2020 02:01:03 +0000"  >&lt;p&gt;setup is 8 OSTs, 16M RPC and max_rpcs_in_flight=16. So an formula of required buffer is 8 x 16M x 16 = 2GB. even default max_cached_mb=47549 is still enough size against required buffer. it&apos;s understandable more large max_cached_mb can be relaxed, but we don&apos;t want to spend huge amount of memory for max_cached_mb.&lt;/p&gt;</comment>
                            <comment id="273904" author="gerrit" created="Sun, 28 Jun 2020 02:47:09 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/37969/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37969/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13365&quot; title=&quot;spin_lock in after_reply() eat up most of cpu&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13365&quot;&gt;&lt;del&gt;LU-13365&lt;/del&gt;&lt;/a&gt; ldlm: check slv and limit before updating&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 3116b9e19dc09a4a8b73c2c4733df5fe4596e041&lt;/p&gt;</comment>
                            <comment id="273931" author="pjones" created="Sun, 28 Jun 2020 14:45:57 +0000"  >&lt;p&gt;Landed for 2.14&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="34458" name="ior-fast-client.svg" size="94194" author="sihara" created="Tue, 17 Mar 2020 09:26:19 +0000"/>
                            <attachment id="34459" name="ior-slow-client.svg" size="88180" author="sihara" created="Tue, 17 Mar 2020 09:26:18 +0000"/>
                    </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|i00vmv:</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="10022"><![CDATA[3]]></customfieldvalue>

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