<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:51:16 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-12288] Preferred flag of route selection policy does not work</title>
                <link>https://jira.whamcloud.com/browse/LU-12288</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Route selection is detemined according to circumstances(Preferred, Health Value, Credits and Seq Number) and Preferred is top priority.&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;
        /*
         * Look at the peer NIs &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; the destination peer that connect
         * to the chosen net. If a peer_ni is preferred when using the
         * best_ni to communicate, we use that one. If there is no
         * preferred peer_ni, or there are multiple preferred peer_ni,
         * the available transmit credits are used. If the transmit
         * credits are equal, we round-robin over the peer_ni.
         */
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;But, If there are more than 2 peers and the first peer is Preffered, there are cases where the Preffered peer(the first one) is not selected(Preffered flag is ignored).&lt;br/&gt;
Also, there are no need to set Preferred flag on when recovery.&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;
lnet_select_peer_ni()

    &lt;span class=&quot;code-comment&quot;&gt;/* pick the healthiest peer ni */&lt;/span&gt;
    &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (lpni_healthv &amp;lt; best_lpni_healthv) {
        &lt;span class=&quot;code-keyword&quot;&gt;continue&lt;/span&gt;;
    } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (lpni_healthv &amp;gt; best_lpni_healthv) {
        best_lpni_healthv = lpni_healthv; &lt;span class=&quot;code-comment&quot;&gt;// peer1(supporse ni_is_pref), but preferred flag not be set
&lt;/span&gt;    &lt;span class=&quot;code-comment&quot;&gt;/* &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; is a preferred peer use it */&lt;/span&gt;
    } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!preferred &amp;amp;&amp;amp; ni_is_pref) {
            preferred = &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;            
    } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (preferred &amp;amp;&amp;amp; !ni_is_pref) { 
            &lt;span class=&quot;code-keyword&quot;&gt;continue&lt;/span&gt;;
    } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (lpni-&amp;gt;lpni_txcredits &amp;lt; best_lpni_credits) { &lt;span class=&quot;code-comment&quot;&gt;// peer2 is judged by another metrics&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;We fixed that route selection is in the following order.&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;Preferred&lt;/li&gt;
	&lt;li&gt;Health Value&lt;/li&gt;
	&lt;li&gt;Credits&lt;/li&gt;
	&lt;li&gt;Seq Number&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
        <key id="55616">LU-12288</key>
            <summary>Preferred flag of route selection policy does not work</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="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="takamura">Tatsushi Takamura</assignee>
                                    <reporter username="takamura">Tatsushi Takamura</reporter>
                        <labels>
                    </labels>
                <created>Mon, 13 May 2019 08:37:17 +0000</created>
                <updated>Thu, 12 Nov 2020 20:13:00 +0000</updated>
                                            <version>Lustre 2.12.1</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="247259" author="ashehata" created="Thu, 16 May 2019 14:23:24 +0000"  >&lt;p&gt;The intended design is to always have health take precedence. In this way the healthiest interface is always used. Would there be a scenario where we should use the preferred interface, even though it&apos;s not healthy, while another healthier interface can be used?&lt;/p&gt;</comment>
                            <comment id="253908" author="takamura" created="Fri, 30 Aug 2019 07:11:29 +0000"  >&lt;p&gt;Amir Shehata,&lt;/p&gt;

&lt;p&gt;Sorry, the late replay.&lt;/p&gt;

&lt;p&gt;Suppose there are 2 preferred routes as follows(ni_is_pref is 1 and both of healthv are same value):&lt;/p&gt;

&lt;p&gt;&#160;&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;
00000400:00000200:13.0:1539748979.363069:0:14461:0:(lib-move.c:1755:lnet_select_peer_ni()) 192.168.128.202@o2ib[ffff880bf773a400]-&amp;gt;192.168.128.201@o2ib[ffff88060a785c00] ni_is_pref = 1, healthv = 1000
00000400:00000200:13.0:1539748979.363072:0:14461:0:(lib-move.c:1755:lnet_select_peer_ni()) 192.168.128.202@o2ib[ffff880bf773a400]-&amp;gt;192.168.130.201@o2ib[ffff880c1fa97e00] ni_is_pref = 1, healthv = 1000
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&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-comment&quot;&gt;/* pick the healthiest peer ni */&lt;/span&gt;
&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (lpni_healthv &amp;lt; best_lpni_healthv) {
&lt;span class=&quot;code-keyword&quot;&gt;continue&lt;/span&gt;;
} &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (lpni_healthv &amp;gt; best_lpni_healthv) {
best_lpni_healthv = lpni_healthv; 
&lt;span class=&quot;code-comment&quot;&gt;//the first route is selected temporarily, but preferred flag is not set &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/* &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; is a preferred peer use it */&lt;/span&gt;
} &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!preferred &amp;amp;&amp;amp; ni_is_pref) {
preferred = &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;
preferred flag is set &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt; and the second route is selected
&lt;span class=&quot;code-comment&quot;&gt;// So, the first route is never selected.&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;I&apos;ll post the patch soon. Could you see it?&lt;/p&gt;</comment>
                            <comment id="253909" author="gerrit" created="Fri, 30 Aug 2019 07:16:49 +0000"  >&lt;p&gt;Tatsushi Takamura (takamr.tatsushi@jp.fujitsu.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/36002&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36002&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12288&quot; title=&quot;Preferred flag of route selection policy does not work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12288&quot;&gt;LU-12288&lt;/a&gt; lnet: preferred flag policy does not work&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 69a4f558b37aa697d69e5aa2c8d030a09f52cdc0&lt;/p&gt;</comment>
                            <comment id="285063" author="gerrit" created="Thu, 12 Nov 2020 20:13:00 +0000"  >&lt;p&gt;Chris Horn (chris.horn@hpe.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/40635&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/40635&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12288&quot; title=&quot;Preferred flag of route selection policy does not work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12288&quot;&gt;LU-12288&lt;/a&gt; lnet: Properly account for preferred peer NI&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: d873d2ed60b0fa7f66c3d0703454d78f2de07f4c&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|i00g53:</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>