<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:40:10 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-11011] checksum type can not be selected permanently</title>
                <link>https://jira.whamcloud.com/browse/LU-11011</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Some checksum types might not work correctly even though they are available&lt;br/&gt;
options and have the best speeds during test. In these circumstances, users&lt;br/&gt;
might want to use a certain checksum type which is known to be functional.&lt;br/&gt;
However, &quot;lctl conf_param XXX-YYY.osc.checksum_type=ZZZ&quot; won&apos;t help to enforce&lt;br/&gt;
a certain checksum type, because the selected checksum type is determined&lt;br/&gt;
during OSC connection, which will overwrite the LLOG parameter.&lt;/p&gt;

&lt;p&gt;Following is the design of solving the problem:&lt;/p&gt;

&lt;p&gt;To solve this problem, whenever a valid checksum type is set by &quot;lctl&lt;br/&gt;
conf_param&quot; or &quot;lctl set_param&quot;, it is remembered as the perferred checksum&lt;br/&gt;
type for the OSC. During connection process, if that checksum type is&lt;br/&gt;
available, that checksum type will be selected as the RPC checksum type&lt;br/&gt;
regardless of its speed.&lt;/p&gt;

&lt;p&gt;The semantics of interface /proc/fs/lustre/osc/*/checksum_type is changed for&lt;br/&gt;
a little bit. If a wrong checksum name is being written into this entry,&lt;br/&gt;
-EINVAL will be returned as before. If the written string is a valid checksum&lt;br/&gt;
name, even though the checksum type is not supported by this OSC/OST pair, the&lt;br/&gt;
checksum type will still be remembered as the perferred checksum type, and&lt;br/&gt;
return value will be -ENOTSUPP. Whenever connecting/reconnecting happens, if&lt;br/&gt;
perferred checksum type is availabe, it will be used for the RPC checksum.&lt;/p&gt;</description>
                <environment></environment>
        <key id="52202">LU-11011</key>
            <summary>checksum type can not be selected permanently</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="lixi_wc">Li Xi</assignee>
                                    <reporter username="lixi">Li Xi</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Thu, 10 May 2018 08:04:21 +0000</created>
                <updated>Tue, 31 Aug 2021 11:58:34 +0000</updated>
                            <resolved>Wed, 21 Aug 2019 12:08:12 +0000</resolved>
                                                    <fixVersion>Lustre 2.13.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="227618" author="gerrit" created="Thu, 10 May 2018 08:05:11 +0000"  >&lt;p&gt;Li Xi (lixi@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/32349&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32349&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11011&quot; title=&quot;checksum type can not be selected permanently&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11011&quot;&gt;&lt;del&gt;LU-11011&lt;/del&gt;&lt;/a&gt; osc: add preferred checksum type support&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 96d577f0b5f782ee2faf6932f07c8785661de2ed&lt;/p&gt;</comment>
                            <comment id="227620" author="lixi" created="Thu, 10 May 2018 08:20:38 +0000"  >&lt;p&gt;Example before applying patch:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# lctl get_param osc.*.checksum_type&lt;br/&gt;
osc.969362ae-OST0000-osc-ffff88007a226800.checksum_type=crc32 adler &lt;span class=&quot;error&quot;&gt;&amp;#91;crc32c&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm1 ~&amp;#93;&lt;/span&gt;# lctl conf_param 969362ae-OST0000.osc.checksum_type=adler&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# lctl get_param osc.*.checksum_type&lt;br/&gt;
osc.969362ae-OST0000-osc-ffff88007a226800.checksum_type=crc32 &lt;span class=&quot;error&quot;&gt;&amp;#91;adler&amp;#93;&lt;/span&gt; crc32c &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# umount /mnt/lustre/&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# mount -t lustre 10.0.1.148@tcp:/969362ae /mnt/lustre/&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# lctl get_param osc.*.checksum_type&lt;br/&gt;
osc.969362ae-OST0000-osc-ffff880070120000.checksum_type=crc32 adler &lt;span class=&quot;error&quot;&gt;&amp;#91;crc32c&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ^ checksum change back to crc32c even &quot;lctl conf_param&quot; want to change it to adler.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;After patch:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# lctl get_param osc.*.checksum_type&lt;br/&gt;
osc.969362ae-OST0000-osc-ffff88007abd1000.checksum_type=crc32 &lt;span class=&quot;error&quot;&gt;&amp;#91;adler&amp;#93;&lt;/span&gt; crc32c &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm1 ~&amp;#93;&lt;/span&gt;# lctl conf_param 969362ae-OST0000.osc.checksum_type=crc32&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# lctl get_param osc.*.checksum_type&lt;br/&gt;
osc.969362ae-OST0000-osc-ffff88007abd1000.checksum_type=&lt;span class=&quot;error&quot;&gt;&amp;#91;crc32&amp;#93;&lt;/span&gt; adler crc32c &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# umount /mnt/lustre/&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# mount -t lustre 10.0.1.148@tcp:/969362ae /mnt/lustre/&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@server17-el7-vm2 ~&amp;#93;&lt;/span&gt;# lctl get_param osc.*.checksum_type&lt;br/&gt;
osc.969362ae-OST0000-osc-ffff88007a808800.checksum_type=&lt;span class=&quot;error&quot;&gt;&amp;#91;crc32&amp;#93;&lt;/span&gt; adler crc32c&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="229477" author="adilger" created="Wed, 13 Jun 2018 04:35:08 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Some checksum types might not work correctly even though they are available options and have the best speeds during test.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Could you please explain this a bit further?  Checksums should not be offered by a server or client if they are not working.  If that is the case, it would be better to fix the code not to offer those checksums, rather than forcing users to specify a working checksum manually.&lt;/p&gt;</comment>
                            <comment id="232220" author="lixi_wc" created="Mon, 20 Aug 2018 06:54:16 +0000"  >&lt;p&gt;&amp;gt; Some checksum types might not work correctly even though they are available options and have the best speeds during test.&lt;/p&gt;

&lt;p&gt;This was not caused by Lustre problem.&lt;/p&gt;

&lt;p&gt;A user found a problem of the default checksum type which has the best performance. I don&apos;t remember the details. I remember the checksum sometimes was calculated wrongly. The root cause might be a bug of the CPU or the kernel. Thus, the user wants to change the checksum type to another one which doesn&apos;t have the best performance. And a persistent configuration would be better than changing everytime when restarting the services.&lt;/p&gt;</comment>
                            <comment id="253353" author="gerrit" created="Wed, 21 Aug 2019 05:04:09 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/32349/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32349/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11011&quot; title=&quot;checksum type can not be selected permanently&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11011&quot;&gt;&lt;del&gt;LU-11011&lt;/del&gt;&lt;/a&gt; osc: add preferred checksum type support&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 9b6b5e4798281eceb45699431bc871eda6d968c4&lt;/p&gt;</comment>
                            <comment id="253379" author="pjones" created="Wed, 21 Aug 2019 12:08:12 +0000"  >&lt;p&gt;Landed for 2.13&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="65518">LU-14912</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="51784">LU-10906</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_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzzx1b:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>