<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:26:08 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-9431] class_process_proc_param can&apos;t handle sysfs</title>
                <link>https://jira.whamcloud.com/browse/LU-9431</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Lustre has the ability to tune proc values using lctl conf_param on the MGS server. Those changes are stored and distributed to all the nodes avoiding to the complex process of setting ever node. The function class_process_proc_param() is used to change the setting using the lprocfs_vars that map to the proc file. With the move to sysfs/debugfs this no longer works. A new approach has to be written to handle sysfs settings. Also we should consider dropping setting debugfs entries since they tend to contain large quantities which the user will typical not set that kind of data&lt;/p&gt;</description>
                <environment></environment>
        <key id="45817">LU-9431</key>
            <summary>class_process_proc_param can&apos;t handle sysfs</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="simmonsja">James A Simmons</assignee>
                                    <reporter username="simmonsja">James A Simmons</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Tue, 2 May 2017 18:43:22 +0000</created>
                <updated>Sun, 1 Apr 2018 13:36:20 +0000</updated>
                            <resolved>Sat, 3 Mar 2018 13:56:43 +0000</resolved>
                                    <version>Lustre 2.10.0</version>
                                    <fixVersion>Lustre 2.11.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="194196" author="adilger" created="Tue, 2 May 2017 20:58:11 +0000"  >&lt;p&gt;There is already &quot;&lt;tt&gt;lctl set_param -P&lt;/tt&gt;&quot; available for some time that replaces the &quot;&lt;tt&gt;lctl conf_param&lt;/tt&gt;&quot; mechanism.  The benefit is that &quot;&lt;tt&gt;set_param -P&lt;/tt&gt;&quot; is using an upcall to &lt;tt&gt;lctl&lt;/tt&gt; in userspace with parameter names the same as regular &lt;tt&gt;set_param&lt;/tt&gt; is doing, unlike &lt;tt&gt;conf_param&lt;/tt&gt; which parses these in a different manner internally and sets the parameters directly.&lt;/p&gt;

&lt;p&gt;The main drawback is that &lt;tt&gt;set_param -P&lt;/tt&gt; has some issues that haven&apos;t been resolved since the patch was originally landed from Xyratex (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7183&quot; title=&quot;lctl set_param -P does not work for sptlrpc flavor&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7183&quot;&gt;&lt;del&gt;LU-7183&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7004&quot; title=&quot;fix &amp;quot;lctl set_param -P&amp;quot; to allow deprecation of &amp;quot;lctl conf_param&amp;quot;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7004&quot;&gt;&lt;del&gt;LU-7004&lt;/del&gt;&lt;/a&gt; at least).  As a result, we haven&apos;t been able to totally deprecate &lt;tt&gt;conf_param&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;As for debugfs parameters that have complex values for output, I can assure you that any of them which accept writes do not allow such complex values for input.  In general, any writable parameters would allow clearing the counters that generate the output, or setting some limited tunable value.  I don&apos;t think it makes sense to explicitly prevent writing to debugfs parameters beyond the existing case of making the parameter read-only if there is no write handler.&lt;/p&gt;</comment>
                            <comment id="194200" author="simmonsja" created="Tue, 2 May 2017 21:14:48 +0000"  >&lt;p&gt;Funny Oleg had the discussion with Greg about using lctl to set parameter which he didn&apos;t like. Yet looking at the upstream client this infrastructure is there. So you are suggesting we should instead fix set_param -P and truly deprecate conf_param. Question I have is do we have a list of where set_param -P is broken?&lt;/p&gt;</comment>
                            <comment id="194206" author="adilger" created="Tue, 2 May 2017 21:44:03 +0000"  >&lt;p&gt;There are several issues linked under &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7004&quot; title=&quot;fix &amp;quot;lctl set_param -P&amp;quot; to allow deprecation of &amp;quot;lctl conf_param&amp;quot;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7004&quot;&gt;&lt;del&gt;LU-7004&lt;/del&gt;&lt;/a&gt; that show problems with &quot;set_param -P&quot;, but of course there could be others.  My suggestion is to change the scripts under &lt;tt&gt;lustre/tests&lt;/tt&gt; to preferentially use &lt;tt&gt;lctl set_param -P&lt;/tt&gt;, and only leave a few places that use &lt;tt&gt;lctl conf_param&lt;/tt&gt; for compatibility testing.  That way we can be sure that &lt;tt&gt;set_param -P&lt;/tt&gt; is at least working well enough for all the existing regression tests.&lt;/p&gt;

&lt;p&gt;I see &lt;tt&gt;conf_param&lt;/tt&gt; used in the following test scripts:&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;lustre/tests/conf-sanity.sh:67
lustre/tests/test-framework.sh:12
lustre/tests/sanity.sh:9
lustre/tests/sanity-quota.sh:3
lustre/tests/ost-pools.sh:2
lustre/tests/sanityn.sh:2
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="194319" author="pjones" created="Wed, 3 May 2017 17:04:52 +0000"  >&lt;p&gt;James&lt;/p&gt;

&lt;p&gt;Is this something that you are intending to work on?&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="194323" author="adilger" created="Wed, 3 May 2017 17:11:32 +0000"  >&lt;p&gt;Based on the previous comments, it looks like this is a prerequisite for the sysfs changes to land. &lt;/p&gt;</comment>
                            <comment id="194359" author="simmonsja" created="Wed, 3 May 2017 18:33:04 +0000"  >&lt;p&gt;Yep. The current method for lctl conf_param only works for debugfs or proc but not sysfs. lctl set_parm -P will work with both. I just updated &lt;a href=&quot;https://review.whamcloud.com/#/c/24031&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/24031&lt;/a&gt; to test lctl set_param -P for the llite layer.&lt;/p&gt;</comment>
                            <comment id="194360" author="pjones" created="Wed, 3 May 2017 18:42:40 +0000"  >&lt;p&gt;ok - thanks James&lt;/p&gt;</comment>
                            <comment id="213984" author="gerrit" created="Fri, 17 Nov 2017 02:44:19 +0000"  >&lt;p&gt;James Simmons (uja.ornl@yahoo.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/30143&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/30143&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9431&quot; title=&quot;class_process_proc_param can&amp;#39;t handle sysfs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9431&quot;&gt;&lt;del&gt;LU-9431&lt;/del&gt;&lt;/a&gt; obd: resolve config log sysfs issues&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 4145792fc0f91ec83debd3f613767ddecf490bc5&lt;/p&gt;</comment>
                            <comment id="214080" author="simmonsja" created="Sat, 18 Nov 2017 00:45:17 +0000"  >&lt;p&gt;I managed to lctl conf_param working with sysfs and debugfs. For the debugfs case for conf_param and in general for lctl set_param -P uevents are now being sent. In turn udev sees the event and acts on it based on the udev rules. By default we have:&lt;/p&gt;

&lt;p&gt;SUBSYSTEM==&quot;lustre&quot;, ACTION==&quot;change&quot;, ENV{PARAM}==&quot;?*&quot;, RUN+=&quot;/usr/sbin/lctl set_param $env{PARAM}=$env{SETTING}&quot;&lt;/p&gt;

&lt;p&gt;As you can see this approach allows a lot more flexibility. You can for example filter based on DEVPATH to only change variables on specific obd devices. Secondly this approach allows admins to run a different application or script instead of lctl. For example a admin might like to know if a tunable has been changed. Next an interesting feature that comes out of this is the ability to configure lustre with udev rules. For example we could do a&lt;/p&gt;

&lt;p&gt;SUBSYSTEM==&quot;lustre&quot;, ACTION==&quot;add&quot;,&#160;DEVPATH==&quot;fs/lustre/osc/lustre-OST*&quot;, ATTR{max_dirty_mb}=64&lt;/p&gt;

&lt;p&gt;This opens up new possibilities here.&lt;/p&gt;</comment>
                            <comment id="214081" author="adilger" created="Sat, 18 Nov 2017 02:55:32 +0000"  >&lt;p&gt;Very interesting. I think this is a good way to implement the &quot;set_param -P&quot; functionality without having to use an upcall. We still need to fork/exec for each parameter, but that is no worse than the old upcall method. &lt;/p&gt;

&lt;p&gt;I assume we can just put a &quot;lustre.conf&quot; (or whatever) file in /etc/udev.d/ directory and this will work?&lt;/p&gt;</comment>
                            <comment id="220301" author="simmonsja" created="Wed, 7 Feb 2018 06:10:20 +0000"  >&lt;p&gt;I fixed the last remaining bug in this patch. Pleased review. Yes have a lustre.conf gile would work in /etc/udev.d to configure lustre.&lt;/p&gt;</comment>
                            <comment id="222185" author="gerrit" created="Sat, 3 Mar 2018 04:28:34 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/30143/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/30143/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9431&quot; title=&quot;class_process_proc_param can&amp;#39;t handle sysfs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9431&quot;&gt;&lt;del&gt;LU-9431&lt;/del&gt;&lt;/a&gt; obd: resolve config log sysfs issues&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: a74b2b5bce71367506e59f1bdba163eb21235a29&lt;/p&gt;</comment>
                            <comment id="222219" author="pjones" created="Sat, 3 Mar 2018 13:56:43 +0000"  >&lt;p&gt;Landed for 2.11&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="36381">LU-8066</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="31474">LU-7004</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="51620">LU-10869</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="51084">LU-10756</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_10030" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Epic/Theme</customfieldname>
                        <customfieldvalues>
                                        <label>upstream</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzzbo7:</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>