<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:21: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-8895] server grants clients with more grants that the clients ask</title>
                <link>https://jira.whamcloud.com/browse/LU-8895</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;When there are several requests inflight a server may grant a client with more grants than it requests.&lt;/p&gt;

&lt;p&gt;In real environment it has been reported that clients were granted ~800mb while max_dirty_mb set to 256.&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;$ cat compute_clients_cur_grant_bytes.txt  | grep OST019c | awk -F= &apos;BEGIN \{ grants=0 } \{ if (grants &amp;lt; $2) grants = $2 } END \{ print grants }&apos;
805306368

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;In total clients were granted ~960gb&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;$ cat compute_clients_cur_grant_bytes.txt  | grep OST019c | awk -F= &apos;{ grants += $2 } END { print grants }&apos;
971171270656

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;That resulted in ENOSPC condition when osts had about 1tb of free space.&lt;/p&gt;</description>
                <environment></environment>
        <key id="42106">LU-8895</key>
            <summary>server grants clients with more grants that the clients ask</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</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="vsaveliev">Vladimir Saveliev</assignee>
                                    <reporter username="vsaveliev">Vladimir Saveliev</reporter>
                        <labels>
                    </labels>
                <created>Fri, 2 Dec 2016 14:23:25 +0000</created>
                <updated>Mon, 21 Jan 2019 15:31:13 +0000</updated>
                            <resolved>Thu, 4 Jan 2018 13:27:02 +0000</resolved>
                                                    <fixVersion>Lustre 2.11.0</fixVersion>
                    <fixVersion>Lustre 2.10.7</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="176207" author="gerrit" created="Fri, 2 Dec 2016 14:33:36 +0000"  >&lt;p&gt;Vladimir Saveliev (vladimir.saveliev@seagate.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/24096&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/24096&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8895&quot; title=&quot;server grants clients with more grants that the clients ask&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8895&quot;&gt;&lt;del&gt;LU-8895&lt;/del&gt;&lt;/a&gt; ofd: do not grant more than asked&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: ad1a4cfae54b235c853951ed2ca50588a6fa5b40&lt;/p&gt;</comment>
                            <comment id="176472" author="niu" created="Mon, 5 Dec 2016 15:13:38 +0000"  >&lt;p&gt;I don&apos;t think it&apos;s a problem that &apos;granted&apos; &amp;gt; &apos;max_dirty_mb&apos;. In my opinion, &apos;max_dirty_mb&apos; is used to limit the dirty pages on client, and &apos;granted&apos; is used to reserve space on server, so that to make sure later dirty flush won&apos;t failed for ENOSPC, it&apos;ll be fine as long as &apos;granted&apos; &amp;gt;= &apos;dirty&apos;. I don&apos;t see why that can result in ENOSPC error.&lt;/p&gt;

&lt;p&gt;When a client is actively consuming grant, it&apos;s reasonable to grant more space for this client (to avoid the client running out of grant), probably we need to throttle the granting speed to make sure not granting too much? But that looks not a very serious problem to me, because we do have shrink mechanism to reclaim unused grant.&lt;/p&gt;</comment>
                            <comment id="177684" author="vsaveliev" created="Wed, 14 Dec 2016 09:08:04 +0000"  >&lt;blockquote&gt;
&lt;p&gt;I don&apos;t think it&apos;s a problem that &apos;granted&apos; &amp;gt; &apos;max_dirty_mb&apos;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;ok, however the below code from ofd_grant_alloc() tries to not grant more than &lt;b&gt;want&lt;/b&gt;:&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;        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (curgrant &amp;gt;= want || curgrant &amp;gt;= fed-&amp;gt;fed_grant + chunk)
                RETURN(0);


&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Note that &lt;b&gt;want&lt;/b&gt; which clients send their rpcs with is equal to max_dirty_mb. See osc_announce_cached():&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;                nrpages = cli-&amp;gt;cl_max_pages_per_rpc;
                nrpages *= cli-&amp;gt;cl_max_rpcs_in_flight + 1;
                nrpages = max(nrpages, cli-&amp;gt;cl_dirty_max_pages);
                oa-&amp;gt;o_undirty = nrpages &amp;lt;&amp;lt; PAGE_SHIFT;


&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;But that looks not a very serious problem to me, because we do have shrink mechanism to reclaim unused grant.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Yes, as grant shrink is off currently (afaics), this quick patch limiting grants might allow to delay occurrence of virtual enospc condition. If the grant shrink is going to be turned on soon, then this patch is not needed.&lt;/p&gt;</comment>
                            <comment id="177807" author="niu" created="Thu, 15 Dec 2016 02:34:05 +0000"  >&lt;p&gt;I was not aware of that grant shrink is disabled by default, but no matter if there is a shrinking mechanism, I do agree that grant shouldn&apos;t be far too larger than dirty_max  of client. I just don&apos;t think it&apos;s necessary to restrain it strictly less than dirty_max, exceeding dirty_max little bit looks not a problem to me.&lt;/p&gt;</comment>
                            <comment id="217433" author="gerrit" created="Thu, 4 Jan 2018 02:48:50 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/24096/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/24096/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8895&quot; title=&quot;server grants clients with more grants that the clients ask&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8895&quot;&gt;&lt;del&gt;LU-8895&lt;/del&gt;&lt;/a&gt; target: limit grant allocation&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 82e494a36e9ea4f51ec163ab15beb9fdda7fa8d6&lt;/p&gt;</comment>
                            <comment id="217468" author="pjones" created="Thu, 4 Jan 2018 13:27:02 +0000"  >&lt;p&gt;Landed for 2.11&lt;/p&gt;</comment>
                            <comment id="231154" author="gerrit" created="Tue, 31 Jul 2018 14:22:19 +0000"  >&lt;p&gt;Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/32907&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32907&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8895&quot; title=&quot;server grants clients with more grants that the clients ask&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8895&quot;&gt;&lt;del&gt;LU-8895&lt;/del&gt;&lt;/a&gt; target: limit grant allocation&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_10&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: f078f27f0de19c898e5eda2a45b6c33732a4e4ab&lt;/p&gt;</comment>
                            <comment id="240379" author="gerrit" created="Sat, 19 Jan 2019 06:29:21 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/32907/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32907/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8895&quot; title=&quot;server grants clients with more grants that the clients ask&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8895&quot;&gt;&lt;del&gt;LU-8895&lt;/del&gt;&lt;/a&gt; target: limit grant allocation&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_10&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: e800ee9409c4fae46e0d52f8d84a432a7f3ff428&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="40593">LU-8708</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                                        </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|hzyx93:</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>