<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:38:28 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-3966] Submit quota lock improvement patches upstream</title>
                <link>https://jira.whamcloud.com/browse/LU-3966</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The quota-replace-dqptr-sem and quota-avoid-dqget-calls patches are applied to the core kernel to improve the locking of quota structures in the VFS.  Since quota is enabled by default for 2.4.0 and later kernels, this has a significant performance impact on all systems (see &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2442&quot; title=&quot;metadata performance degradation on current master&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2442&quot;&gt;&lt;del&gt;LU-2442&lt;/del&gt;&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;These patches should be submitted upstream so that we don&apos;t need to patch the kernel to get this improvement.  Some performance tests should be run to show some benefit to a non-Lustre workload (e.g. multi-threaded IO with quota enabled, maybe dbench or iozone or fio) and these results should be included with the upstream submission.&lt;/p&gt;</description>
                <environment></environment>
        <key id="20996">LU-3966</key>
            <summary>Submit quota lock improvement patches upstream</summary>
                <type id="7" iconUrl="https://jira.whamcloud.com/images/icons/issuetypes/task_agile.png">Technical task</type>
                            <parent id="10111">LU-20</parent>
                                    <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="niu">Niu Yawei</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                            <label>kernel</label>
                    </labels>
                <created>Tue, 17 Sep 2013 16:40:00 +0000</created>
                <updated>Thu, 26 Feb 2015 22:04:30 +0000</updated>
                            <resolved>Mon, 18 Aug 2014 02:11:09 +0000</resolved>
                                    <version>Lustre 2.4.0</version>
                    <version>Lustre 2.5.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="84274" author="adilger" created="Fri, 16 May 2014 17:53:28 +0000"  >&lt;p&gt;Niu, any chance you would be able to push these patches upstream?&lt;/p&gt;</comment>
                            <comment id="84354" author="niu" created="Mon, 19 May 2014 02:31:28 +0000"  >&lt;p&gt;Sure, I&apos;m going to start this work soon.&lt;/p&gt;</comment>
                            <comment id="84686" author="niu" created="Thu, 22 May 2014 07:25:18 +0000"  >&lt;p&gt;Attached files:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;patch against mainline kernel&lt;/li&gt;
	&lt;li&gt;mdtest test result&lt;/li&gt;
	&lt;li&gt;dbench test result&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="84687" author="niu" created="Thu, 22 May 2014 07:32:16 +0000"  >&lt;p&gt;I compared the performance in my centos6.5 vm (8 cpus, 4G mem).&lt;/p&gt;

&lt;p&gt;mdtest creation:&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-java&quot;&gt;threads              1       2       4       8       16
disabled quota:   40045    78379   128652   89176   103666
enabled quota:    34939    46725   24095    14321   16510
patched/disabled: 39120    75325   124181   72012   86622
patched/enabled:  34769    67086   111854   85923   87982
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;mdtest unlink:&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-java&quot;&gt;threads              1       2       4       8       16
disabled quota:   91587    148808  227496   193661  190477
enabled quota:    72426    48726   14845    12825   15907
patched/disabled: 85246    146369  228514   194053  192407
patched/enabled:  78257    124332  166146   180874  174715
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;dbench 8 threads:&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-java&quot;&gt;====== disabled quota: ======

 Operation                Count    AvgLat    MaxLat
 --------------------------------------------------
 Deltree                     32     3.585     8.437
 Flush                    82625     3.797   207.561
 Close                   865785     0.004     1.353
 LockX                     3840     0.005     0.182
 Mkdir                       16     0.005     0.007
 Rename                   49897     0.050     6.085
 ReadX                  1847719     0.006     6.332
 WriteX                  588019     0.033     6.968
 Unlink                  238061     0.050     6.537
 UnlockX                   3840     0.004     0.302
 FIND_FIRST              413054     0.024     2.920
 SET_FILE_INFORMATION     95961     0.035     6.998
 QUERY_FILE_INFORMATION  187253     0.003     0.478
 QUERY_PATH_INFORMATION 1068225     0.010     6.211
 QUERY_FS_INFORMATION    195932     0.006     0.541
 NTCreateX              1178614     0.021    64.684

Throughput 616.998 MB/sec  8 clients  8 procs  max_latency=207.575 ms

====== enabled quota: ======

 Operation                Count    AvgLat    MaxLat
 --------------------------------------------------
 Deltree                     16    11.240    54.888
 Flush                    61421     3.627   127.876
 Close                   643369     0.004     0.924
 LockX                     2848     0.005     0.253
 Mkdir                        8     0.005     0.008
 Rename                   37088     0.116     3.845
 ReadX                  1372315     0.007     5.024
 WriteX                  435537     0.106    18.304
 Unlink                  176928     0.351    29.266
 UnlockX                   2848     0.004     0.095
 FIND_FIRST              306847     0.024     1.689
 SET_FILE_INFORMATION     71406     0.040     8.933
 QUERY_FILE_INFORMATION  138904     0.003     0.421
 QUERY_PATH_INFORMATION  794000     0.011     4.027
 QUERY_FS_INFORMATION    145520     0.006     0.473
 NTCreateX               875964     0.072    52.923

Throughput 457.433 MB/sec  8 clients  8 procs  max_latency=127.902 ms

====== patched/disabled: ======

 Operation                Count    AvgLat    MaxLat
 --------------------------------------------------
 Deltree                     32     3.332     8.210
 Flush                    82543     3.790   146.987
 Close                   865200     0.004     1.289
 LockX                     3836     0.005     0.142
 Mkdir                       16     0.008     0.038
 Rename                   49870     0.052     4.907
 ReadX                  1846334     0.006     6.107
 WriteX                  587645     0.033     8.086
 Unlink                  237737     0.052     6.440
 UnlockX                   3836     0.004     0.105
 FIND_FIRST              412704     0.024     1.597
 SET_FILE_INFORMATION     95948     0.034     7.854
 QUERY_FILE_INFORMATION  187179     0.003     0.408
 QUERY_PATH_INFORMATION 1067460     0.010     5.316
 QUERY_FS_INFORMATION    195706     0.006     0.613
 NTCreateX              1177689     0.021     6.521

Throughput 616.574 MB/sec  8 clients  8 procs  max_latency=147.007 ms

====== patched/enabled: ======

 Operation                Count    AvgLat    MaxLat
 --------------------------------------------------
 Deltree                     32     3.248     8.430
 Flush                    80481     3.908   241.537
 Close                   843781     0.004     0.561
 LockX                     3746     0.005     0.141
 Mkdir                       16     0.005     0.007
 Rename                   48642     0.051     6.466
 ReadX                  1800754     0.006    87.027
 WriteX                  573185     0.033     6.750
 Unlink                  231880     0.058    14.507
 UnlockX                   3746     0.004     0.103
 FIND_FIRST              402463     0.024     1.342
 SET_FILE_INFORMATION     93557     0.035    42.348
 QUERY_FILE_INFORMATION  182573     0.003     1.305
 QUERY_PATH_INFORMATION 1041026     0.010    86.289
 QUERY_FS_INFORMATION    190869     0.006     1.240
 NTCreateX              1148570     0.022     6.285

Throughput 602.147 MB/sec  8 clients  8 procs  max_latency=241.561 ms
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We can see the patch helped a lot on performance, will send the patch to upstream soon.&lt;/p&gt;</comment>
                            <comment id="87839" author="simmonsja" created="Mon, 30 Jun 2014 21:39:50 +0000"  >&lt;p&gt;Peter can you link this ticket to &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-20&quot; title=&quot;patchless server kernel&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-20&quot;&gt;&lt;del&gt;LU-20&lt;/del&gt;&lt;/a&gt;. Thank you.&lt;/p&gt;</comment>
                            <comment id="87982" author="adilger" created="Wed, 2 Jul 2014 17:08:54 +0000"  >&lt;p&gt;The patches were pushed upstream &lt;a href=&quot;http://www.spinics.net/lists/linux-ext4/msg43588.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.spinics.net/lists/linux-ext4/msg43588.html&lt;/a&gt; and were accepted into the quota staging tree:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On Wed 04-06-14 12:19:12, Niu Yawei wrote:&lt;br/&gt;
&amp;gt; Subject: &lt;span class=&quot;error&quot;&gt;&amp;#91;PATCH 1/5&amp;#93;&lt;/span&gt; quota: protect Q_GETFMT by dqonoff_mutex&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; dqptr_sem will go away. Protect Q_GETFMT quotactl by&lt;br/&gt;
&amp;gt; dqonoff_mutex instead. This is also enough to make sure&lt;br/&gt;
&amp;gt; quota info will not go away while we are looking at it.&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Signed-off-by: Lai Siyao &amp;lt;lai.siyao@xxxxxxxxx&amp;gt;&lt;br/&gt;
&amp;gt; Signed-off-by: Niu Yawei &amp;lt;yawei.niu@xxxxxxxxx&amp;gt;&lt;br/&gt;
  Thanks! I&apos;ve merged all the five patches to my tree. I will give them&lt;br/&gt;
some testing. I won&apos;t push them in this merge window but it should go in in&lt;br/&gt;
the next one.&lt;br/&gt;
								Honza&lt;/p&gt;&lt;/blockquote&gt;
</comment>
                            <comment id="91778" author="simmonsja" created="Fri, 15 Aug 2014 20:36:22 +0000"  >&lt;p&gt;The following patches from Niu Yawei have landed upstream (linus tree):&lt;/p&gt;

&lt;p&gt;commit d68aab6b8f572406aa93b45ef6483934dd3b54a6&lt;br/&gt;
quota: missing lock in dqcache_shrink_scan()&lt;/p&gt;

&lt;p&gt;commit 606cdcca04a609ed4dfbfe788942de9477da556b&lt;br/&gt;
quota: protect Q_GETFMT by dqonoff_mutex&lt;/p&gt;

&lt;p&gt;commit 1ea06bec78a128adc995ca32bd906a6c9bb9cf91&lt;br/&gt;
quota: avoid unnecessary dqget()/dqput() calls&lt;/p&gt;

&lt;p&gt;commit 9eb6463f31cf720deaf0e810cacc403d7720b10c&lt;br/&gt;
quota: simplify remove_inode_dquot_ref()&lt;/p&gt;

&lt;p&gt;commit b9ba6f94b2382ef832f9ck7122976b73004f714714&lt;br/&gt;
quota: remove dqptr_sem&lt;/p&gt;

&lt;p&gt;I believe all the needed patches are now landed upstream. We can close this ticket.&lt;/p&gt;</comment>
                            <comment id="91833" author="niu" created="Mon, 18 Aug 2014 02:11:09 +0000"  >&lt;p&gt;Thanks, James.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="16867">LU-2442</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="14989" name="0001-quota-remove-dqptr_sem-for-scalability.patch" size="20021" author="niu" created="Thu, 22 May 2014 07:25:18 +0000"/>
                            <attachment id="14988" name="result-dbench.txt" size="4102" author="niu" created="Thu, 22 May 2014 07:25:18 +0000"/>
                            <attachment id="14987" name="result-mdtest.txt" size="16036" author="niu" created="Thu, 22 May 2014 07:25: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|hzw307:</customfieldvalue>

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