<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:29:39 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-2950] Port LNET routes_config change done by Fujitsu in latest lustre</title>
                <link>https://jira.whamcloud.com/browse/LU-2950</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Port a change made by Fujitsu where they added a new lnet module param: routes_config, which can specify a file that contains a set of routes to be used by lnet&lt;/p&gt;</description>
                <environment></environment>
        <key id="17840">LU-2950</key>
            <summary>Port LNET routes_config change done by Fujitsu in latest lustre</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</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="ashehata">Amir Shehata</assignee>
                                    <reporter username="ashehata">Amir Shehata</reporter>
                        <labels>
                            <label>Fujitsu</label>
                            <label>lnet</label>
                    </labels>
                <created>Tue, 12 Mar 2013 18:17:36 +0000</created>
                <updated>Thu, 7 Aug 2014 20:37:01 +0000</updated>
                            <resolved>Thu, 1 May 2014 16:14:24 +0000</resolved>
                                    <version>Lustre 2.5.0</version>
                                    <fixVersion>Lustre 2.4.0</fixVersion>
                                        <due>Wed, 20 Mar 2013 00:00:00 +0000</due>
                            <votes>0</votes>
                                    <watches>10</watches>
                                                                            <comments>
                            <comment id="53827" author="keith" created="Tue, 12 Mar 2013 20:57:49 +0000"  >&lt;p&gt;Please be aware of: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1071&quot; title=&quot;able to handle many lnet routes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1071&quot;&gt;&lt;del&gt;LU-1071&lt;/del&gt;&lt;/a&gt; able to handle many lnet routes&lt;/p&gt;

&lt;p&gt;I really don&apos;t like the fact of reading a file into the kernel space but I guess it is seen as a necessary evil at this point.  Please safeguard all file actions as much as you can.&lt;/p&gt;</comment>
                            <comment id="54117" author="ashehata" created="Fri, 15 Mar 2013 12:32:58 +0000"  >&lt;p&gt;We took Issac&apos;s suggestion and we created a shell script that reads a routes config file then uses lctl to configure lnet with the routes.  This avoids opening files in kernel space.&lt;/p&gt;</comment>
                            <comment id="54807" author="ashehata" created="Mon, 25 Mar 2013 23:22:38 +0000"  >&lt;p&gt;test files&lt;/p&gt;</comment>
                            <comment id="54808" author="ashehata" created="Mon, 25 Mar 2013 23:28:27 +0000"  >&lt;p&gt;We created two scripts.  One to convert from the legacy syntax to the new syntax, and the second to take a file of the new syntax and configure lustre using lctl.&lt;/p&gt;

&lt;p&gt;The legacy syntax (which is currently being used in the lustre.conf file):&lt;br/&gt;
&amp;lt;network&amp;gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;hop&amp;gt;&amp;#93;&lt;/span&gt; &amp;lt;gateway&amp;gt;@&amp;lt;exit network&amp;gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;:&amp;lt;priority&amp;gt;&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;The new syntax (which is used in the new scripts):&lt;br/&gt;
&amp;lt;network&amp;gt;: &lt;/p&gt;
{ gateway: &amp;lt;gateway&amp;gt;@&amp;lt;exit network&amp;gt; [hope: &amp;lt;hop&amp;gt;] [priority: &amp;lt;prioirty&amp;gt;] }

&lt;p&gt;I would think the intention is to move the syntax to the new form in the future, so there isn&apos;t three different syntax for configuring routes.&lt;/p&gt;

&lt;p&gt;Below is sample test runs.  I have also attached two files to this Bug that were used for testing the scripts.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;ashehata@localhost scripts&amp;#93;&lt;/span&gt;$ ~/lustre-master/lustre/scripts/lustre_routes_conversion legacy_routes_test new_routes_test&lt;br/&gt;
tcp1 23 192.168.213.1@tcp:1  tcp5 34 193.30.4.3@tcp:4&lt;br/&gt;
tcp2 54 10.1.3.2@tcp&lt;br/&gt;
tcp3 10.3.4.3@tcp:3&lt;br/&gt;
tcp4 10.3.3.4@tcp&lt;br/&gt;
lustre_routes_conversion: converted routes written to test9&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ashehata@localhost scripts&amp;#93;&lt;/span&gt;$ ~/lustre-master/lustre/scripts/lustre_routes_config --dry-run --verbose new_routes_test&lt;br/&gt;
lctl --net tcp1 add_route 192.168.213.1@tcp 23 1&lt;br/&gt;
lctl --net tcp5 add_route 193.30.4.3@tcp 34 4&lt;br/&gt;
lctl --net tcp2 add_route 10.1.3.2@tcp 54 4&lt;br/&gt;
lctl --net tcp3 add_route 10.3.4.3@tcp 1 3&lt;br/&gt;
lctl --net tcp4 add_route 10.3.3.4@tcp 1 3&lt;/p&gt;</comment>
                            <comment id="54859" author="keith" created="Tue, 26 Mar 2013 17:38:24 +0000"  >&lt;p&gt;Can you submit your scripts into gerrit? &lt;/p&gt;</comment>
                            <comment id="54875" author="ashehata" created="Tue, 26 Mar 2013 22:56:35 +0000"  >&lt;p&gt;The code inspection is @ &lt;a href=&quot;http://review.whamcloud.com/#change,5757&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,5757&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="55454" author="nozaki" created="Thu, 4 Apr 2013 02:20:14 +0000"  >&lt;p&gt;Hi, Amir. Nice to meet you.&lt;/p&gt;

&lt;p&gt;I heartily agree your implementation because I also think reading a file into kernel space can be a kind of dangerous.&lt;br/&gt;
But running the new script means that the timing to read a configuration file should be changed. That&apos;s why I wonder that lnet configuration will be the same as expected when &quot;lustre_routes_config&quot; or something like that runs on a router node after &quot;lctl network up&quot;. Because LNetNIInit() checks &quot;im_a_router&quot; there and, I guess, it may have some effects on interpreting configuration.&lt;br/&gt;
Actually, I&apos;m not so sure that it can be problem but I&apos;ll appreciate if you answer my question, or consider the case if you&apos;ve never considered it.&lt;/p&gt;

&lt;p&gt;Thank you &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/wink.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;</comment>
                            <comment id="56176" author="ashehata" created="Fri, 12 Apr 2013 01:37:35 +0000"  >&lt;p&gt;Hi Hiroya,&lt;/p&gt;

&lt;p&gt;My apologies for the delay, for some reason I wasn&apos;t getting any notifications on Jira of comments being added.  I will look into that.&lt;/p&gt;

&lt;p&gt;I have looked at the case that you have indicated; and you are absolutely right.  The im_a_router flag will not be set when initially LNetNIInit() is called, and that will cause the &quot;forwarding&quot; parameter not to be checked, resulting in an lnet router node not behaving as expected.  Thanks for pointing this out.&lt;/p&gt;

&lt;p&gt;There are a couple of way to approach this:&lt;/p&gt;

&lt;p&gt;1. Is to ensure that for a router node, in the luster.conf you enter a routes module param entry that corresponds to the NID of the router.  This way when the routes param is being parsed a router node will set the &quot;im_a_router&quot; param properly and thus allocate the pools.  The script: &quot;lustre_routes_config&quot; can be used later on to add extra routing entries as desired.&lt;br/&gt;
This solution would be temporary until a feature we have in the pipe, DLC, lands.  This will allow the modifications of lnet configurations dynamically.&lt;/p&gt;

&lt;p&gt;2. Is to modify the patch to ensure that when routes are added, if a route NID is added which corresponds to the local NID, then im_a_route is set, and immediately the pools are created.&lt;/p&gt;

&lt;p&gt;Please let me know your thoughts on these approaches.&lt;/p&gt;

&lt;p&gt;Thanks again for catching this case.&lt;/p&gt;

&lt;p&gt;amir&lt;/p&gt;


</comment>
                            <comment id="56178" author="ashehata" created="Fri, 12 Apr 2013 01:42:46 +0000"  >&lt;p&gt;Hi Hiroya,&lt;/p&gt;

&lt;p&gt;A note to highlight:&lt;/p&gt;

&lt;p&gt;The DLC (Dynamic Lnet Configuration) will be backwards compatible. (IE, existing configurations will not need to be changed, when DLC is introduced)&lt;/p&gt;

&lt;p&gt;thanks&lt;br/&gt;
amir&lt;/p&gt;</comment>
                            <comment id="56930" author="ashehata" created="Wed, 24 Apr 2013 14:38:01 +0000"  >&lt;p&gt;I have updated review: &lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#change,5757&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,5757&lt;/a&gt; &lt;br/&gt;
to add the man pages and&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#change,5965&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,5965&lt;/a&gt;&lt;br/&gt;
for the testing portion&lt;br/&gt;
If you guys can review it, that would be great.&lt;/p&gt;</comment>
                            <comment id="91102" author="haasken" created="Thu, 7 Aug 2014 20:37:01 +0000"  >&lt;p&gt;Since this change added the ability to configure LNet routes from a file, and updated the lnet init script to load that config file at start time, I think the reload and probe actions should be updated so that they will reload the configuration from the file, if necessary.&lt;/p&gt;

&lt;p&gt;From the LSB, this is what the reload action should do:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;cause the configuration of the service to be reloaded without actually stopping and restarting the service&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Similarly probe should do the following (according to SUSE, at least):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;probe &#8212; Probes for the necessity of a reload. Depending on the service, prints &quot;reload&quot; or &quot;restart&quot; if a reload is required. Nothing is printed if a reload is not required.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I am curious about this because I am working on porting at least the lnet init script to SLES.  Amir, am I right to think that the lnet init script should call lustre_routes_config during the reload operation?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="18992">LUDOC-147</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="12423" name="legacy_routes_test" size="118" author="ashehata" created="Mon, 25 Mar 2013 23:22:38 +0000"/>
                            <attachment id="12424" name="new_routes_test" size="233" author="ashehata" created="Mon, 25 Mar 2013 23:22:38 +0000"/>
                    </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|hzvko7:</customfieldvalue>

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