<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:15:34 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-8209] glimpse lock request does not engage ELC to drop unneeded locks</title>
                <link>https://jira.whamcloud.com/browse/LU-8209</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;It appears that with conversion to clio this important bit of funcionality that allows us to balance lock counts on clients was lost.&lt;/p&gt;

&lt;p&gt;Vitaly tracked it to this patch:&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;commit fd908da92ccd9aab4ffc3d2463301831260c0474
Author: huanghua &amp;lt;huanghua&amp;gt;
Date:   Thu Feb 7 08:07:16 2008 +0000

    b=14149
    i=yong.fan
    i=rahul.deshmukh
    i=nikita.danilov
    
    - use req_capsule &lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; client.
    - add some interoperability support on server side.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The removal seems to be accidental.&lt;br/&gt;
Where before all enqueues came via a single path and ELC was alwas engaged, this is no longer the case.&lt;br/&gt;
The patch was cli_enqueue() -&amp;gt; ldlm_prep_enqueue_req()&lt;br/&gt;
and this call to ldlm_prep_enqueue_req() is now missing for glimpse enqueue.&lt;/p&gt;</description>
                <environment></environment>
        <key id="37221">LU-8209</key>
            <summary>glimpse lock request does not engage ELC to drop unneeded locks</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="hongchao.zhang">Hongchao Zhang</assignee>
                                    <reporter username="green">Oleg Drokin</reporter>
                        <labels>
                    </labels>
                <created>Thu, 26 May 2016 23:41:46 +0000</created>
                <updated>Fri, 21 Dec 2018 18:07:22 +0000</updated>
                            <resolved>Sat, 8 Oct 2016 19:11:48 +0000</resolved>
                                                    <fixVersion>Lustre 2.9.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>10</watches>
                                                                            <comments>
                            <comment id="153811" author="bfaccini" created="Fri, 27 May 2016 14:06:05 +0000"  >&lt;p&gt;Well, if I correctly understand, this means that presently in current master, ldlm_cli_enqueue() does not call ldlm_prep_&lt;span class=&quot;error&quot;&gt;&amp;#91;enqueue,elc&amp;#93;&lt;/span&gt;_req() but this is left to upper layer/callers responsibility to track for/submit eligible locks, right?&lt;/p&gt;

&lt;p&gt;Based on this now, my understanding is that :&lt;br/&gt;
              _ Client glimpse enqueue seems to start with cl_glimpse_lock(), calling cl_lock_request() with CEF_ASYNC flag set in cl_lock_descr struct. CEF_MUST flag is also set to ensure lock request will be issued and not be considered as lock-less.&lt;br/&gt;
              _ cl_lock_request() will first call cl_lock_init()&lt;br/&gt;
              _ cl_lock_init() will call ::coo_lock_init method() for each layer&lt;br/&gt;
              _ thus osc_lock_init() will be called and will set LDLM_FL_HAS_INTENT flag due to CEF_ASYNC present (with help from osc_enq2ldlm_flags()), and will also set ols_glimpse bit&lt;br/&gt;
              _ back in cl_lock _request(), it will then call cl_lock_enqueue()&lt;br/&gt;
              _ cl_lock_enqueue() will call ::clo_enqueue() method for each layer, and thus osc_lock_enqueue() will be called&lt;br/&gt;
              _ osc_lock_enqueue() will call osc_enqueue_base(), because ols_glimpse bit and not lock-less&lt;br/&gt;
              _ osc_enqueue_base() will call ldlm_prep_enqueue_req() because of LDLM_FL_HAS_INTENT is set&lt;/p&gt;

&lt;p&gt;What do you think? Did I miss something there ?&lt;/p&gt;</comment>
                            <comment id="157652" author="vitaly_fertman" created="Tue, 5 Jul 2016 12:19:33 +0000"  >&lt;p&gt;err... the opposite. the glimpse works fine. others are not, because of:&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;@@ -646,7 +650,10 @@ int ldlm_cli_enqueue(struct obd_export *exp, struct ptlrpc_request **reqp,
         /* lock not sent to server yet */
 
         if (reqp == NULL || *reqp == NULL) {
-                req = ldlm_prep_enqueue_req(exp, 2, size, NULL, 0);
+                req = ptlrpc_request_alloc_pack(class_exp2cliimp(exp),
+                                                &amp;amp;RQF_LDLM_ENQUEUE,
+                                                LUSTRE_DLM_VERSION,
+                                                LDLM_ENQUEUE);
                 if (req == NULL) {
                         failed_lock_cleanup(ns, lock, lockh, einfo-&amp;gt;ei_mode);
                         LDLM_LOCK_PUT(lock);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="160883" author="gerrit" created="Fri, 5 Aug 2016 10:54:42 +0000"  >&lt;p&gt;Hongchao Zhang (hongchao.zhang@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/21739&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/21739&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8209&quot; title=&quot;glimpse lock request does not engage ELC to drop unneeded locks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8209&quot;&gt;&lt;del&gt;LU-8209&lt;/del&gt;&lt;/a&gt; ldlm: engage ELC for all ldlm enqueue req&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: ab97c207d6310426d6872d2fa234ad4ed5dfeebb&lt;/p&gt;</comment>
                            <comment id="168808" author="gerrit" created="Sat, 8 Oct 2016 16:38:35 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/21739/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/21739/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8209&quot; title=&quot;glimpse lock request does not engage ELC to drop unneeded locks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8209&quot;&gt;&lt;del&gt;LU-8209&lt;/del&gt;&lt;/a&gt; ldlm: engage ELC for all ldlm enqueue req&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: e8f5f496ed41f237c4fb44cc7355f1ded4c33ac6&lt;/p&gt;</comment>
                            <comment id="168826" author="pjones" created="Sat, 8 Oct 2016 19:11:48 +0000"  >&lt;p&gt;Landed for 2.9&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="29728">LU-6529</issuekey>
        </issuelink>
                            </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|hzycy7:</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>