<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:03:06 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-35] Make portals_handle use the generic cfs_hash_t </title>
                <link>https://jira.whamcloud.com/browse/LU-35</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>
&lt;p&gt;Despite the existence of the cfs_hash_t hash table class, the global hash table of portals_handle has its own fixed-bucket-count hash table implementation, using RCU for the lists of handles.&lt;/p&gt;

&lt;p&gt;This issue relates to a patch to be pushed to gerrit, which will:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Remove the RCU support from the portals_handle hash table (RCU is less portable, requires extra complexity in code using portals_handle, and makes the portals_handle struct larger)&lt;/li&gt;
	&lt;li&gt;Convert the portals_handle hash table to be a standard cfs_hash_t (reducing code size and getting advantage of hash resizing)&lt;/li&gt;
	&lt;li&gt;Introduce per-cpu variables for the portals_handle cookie generation to reduce contention on a global lock when allocating cookies (potentially improving SMP performance)&lt;/li&gt;
&lt;/ul&gt;

</description>
                <environment></environment>
        <key id="10151">LU-35</key>
            <summary>Make portals_handle use the generic cfs_hash_t </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="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="4">Incomplete</resolution>
                                        <assignee username="john">John Spray</assignee>
                                    <reporter username="john">John Spray</reporter>
                        <labels>
                    </labels>
                <created>Wed, 5 Jan 2011 06:35:41 +0000</created>
                <updated>Wed, 17 Apr 2013 21:58:11 +0000</updated>
                            <resolved>Wed, 17 Apr 2013 21:58:11 +0000</resolved>
                                    <version>Lustre 2.0.0</version>
                                    <fixVersion>Lustre 2.1.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="10381" author="john" created="Wed, 5 Jan 2011 07:26:11 +0000"  >&lt;p&gt;See &lt;a href=&quot;http://review.whamcloud.com/#change,167&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,167&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="10383" author="adilger" created="Wed, 5 Jan 2011 13:33:12 +0000"  >&lt;p&gt;Changes to lustre_handle can have a significant impact on SMP performance, which was the original reason to add RCU to this structure (see &lt;a href=&quot;http://bugzilla.lustre.org/show_bug.cgi?id=10706&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://bugzilla.lustre.org/show_bug.cgi?id=10706&lt;/a&gt; for the original problem that was resolved by this change).  We need to validate this new patch by running it on a many-core SMP system under load.  Liang should comment on the testing method and data analysis used during the development of the SMP scaling patches.&lt;/p&gt;

&lt;p&gt;Also, please remove the &quot;#if !defined(HAVE_RCU)&quot; compatibility code at the top of lustre/obdclass/lustre_handle.c as part of this patch, since it looks to be unnecessary with the removal of RCU usage.&lt;/p&gt;</comment>
                            <comment id="10384" author="liang" created="Wed, 5 Jan 2011 17:08:14 +0000"  >&lt;p&gt;Andreas, it&apos;s cool to see you here, &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;there are a few reasons we might want to change lustre_handle:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;some handles are not rarely changed, i.e: the most commonly used one is ldlm_lock handle, I&apos;m not sure but probably RCU is not quite good choice for that case&lt;/li&gt;
	&lt;li&gt;the RCU related stuff increased about 40 bytes for each handle, so we have more memory footprint.&lt;/li&gt;
	&lt;li&gt;it would be good to have a few bits as &quot;type&quot; information of &quot;cookie&quot;(or have different handle types in different hash-table?), so we got less chance to screw up memory if remote peer passing a totally wrong handle to local which is a different data type. I&apos;m not sure whether it&apos;s the thing we should consider about&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Anyway, I totally agree we do need to measure performance of the patch when we got environment...&lt;/p&gt;

</comment>
                            <comment id="56510" author="john" created="Wed, 17 Apr 2013 21:58:11 +0000"  >&lt;p&gt;Cleaning up: this has been idle for &amp;gt;2yrs.&lt;/p&gt;</comment>
                    </comments>
                    <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|hzvofj:</customfieldvalue>

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