<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:33:36 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-10274] LNet event add-on function</title>
                <link>https://jira.whamcloud.com/browse/LU-10274</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;lnet eq_callback is always called with hold of spinlock, this is useful when upper layer has requirement on strict order of events for the same MD. For example, if all events/callbacks may change some status, but only the last callback (for unlinked event) can wakeup upper layer thread, this case requires the last callback strictly happen after all other events/callbacks, otherwise upper layer thread may see wrong status.&lt;/p&gt;

&lt;p&gt;However, there are also some cases upper layer has no requirement on order of events/callbacks, then it is unnecessary for lnet to guarantee order of events.&lt;/p&gt;

&lt;p&gt;We  can add new lnet event interface to upper layer (LNetEventAddon), by calling it, user can register an add-on for current event from lnet_eq_handler_t, lnet will call this add-on function without any lock after current lnet_eq_handler_t.&lt;/p&gt;

&lt;p&gt;In current ptlrpc, request_in_callback is the major case that can benefit from this, current request_in_callback needs to call atomic allocator to allocate ptlrpc_request, which is not good because it  can easily fail when system is under memory pressure, it also generate more lock contentions between LND threads and ptlrpc threads, which is bad for performance. With this feature, most code in request_in_callback can be moved to a new function request_in_add_on, which is registered by a new lightweight version of request_in_callback, request_in_add_on will be called without any lock.&lt;/p&gt;

&lt;p&gt;Some other event callbacks in ptlrpc can also use this feature. &lt;/p&gt;

</description>
                <environment></environment>
        <key id="27892">LU-10274</key>
            <summary>LNet event add-on function</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="6" iconUrl="https://jira.whamcloud.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="2">Won&apos;t Fix</resolution>
                                        <assignee username="ashehata">Amir Shehata</assignee>
                                    <reporter username="liang">Liang Zhen</reporter>
                        <labels>
                            <label>lnet</label>
                            <label>performance</label>
                    </labels>
                <created>Fri, 12 Dec 2014 08:16:46 +0000</created>
                <updated>Thu, 15 Oct 2020 13:36:42 +0000</updated>
                            <resolved>Thu, 15 Oct 2020 13:36:37 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="101407" author="liang" created="Fri, 12 Dec 2014 08:25:57 +0000"  >&lt;p&gt;lnet patch: &lt;a href=&quot;http://review.whamcloud.com/13047&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13047&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="101409" author="liang" created="Fri, 12 Dec 2014 08:39:51 +0000"  >&lt;p&gt;the first ptlrpc patch &lt;a href=&quot;http://review.whamcloud.com/13048&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13048&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="103325" author="liang" created="Tue, 13 Jan 2015 14:28:35 +0000"  >&lt;p&gt;please check document attached on &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10275&quot; title=&quot;ptlrpc reply acknowledgement&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10275&quot;&gt;INTL-173&lt;/a&gt; for details&lt;/p&gt;</comment>
                            <comment id="214552" author="adilger" created="Thu, 23 Nov 2017 21:14:18 +0000"  >&lt;p&gt;The one comment I would have is that &quot;Addon&quot; is not a common programming term, so doesn&apos;t describe this functionality well.  Better would be &quot;CallBack&quot; or &quot;Completion&quot; or similar.&lt;/p&gt;

&lt;p&gt;It does look relatively straight forward from the LNet point of view, and will likely be useful for the LNet Network Health that Amir is working on.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="28000">LU-10275</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|hzx2e7:</customfieldvalue>

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