<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:25:50 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-9397] Inconsistence use of cfs_time_current() and ktime_get_real_seconds()</title>
                <link>https://jira.whamcloud.com/browse/LU-9397</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;&quot;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6245&quot; title=&quot;Untangle userland and kernel space support for libcfs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6245&quot;&gt;&lt;del&gt;LU-6245&lt;/del&gt;&lt;/a&gt; libcfs: add ktime_get_real_seconds support&quot; introduced a problem where sometimes we use cfs_time_current() and others ktime_get_real_seconds(). This leads to wrong comparison, leading to strange timing issues.&lt;/p&gt;

&lt;p&gt;One behavior observed were routers considering peers dead, due to these inconsistent comparison.&lt;/p&gt;

&lt;p&gt;We&apos;ll need to make sure that the LNet and LND code follows a consistent and correct approach.&lt;/p&gt;</description>
                <environment></environment>
        <key id="45718">LU-9397</key>
            <summary>Inconsistence use of cfs_time_current() and ktime_get_real_seconds()</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</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="ashehata">Amir Shehata</reporter>
                        <labels>
                    </labels>
                <created>Tue, 25 Apr 2017 18:56:41 +0000</created>
                <updated>Fri, 2 Mar 2018 15:55:57 +0000</updated>
                            <resolved>Sat, 3 Jun 2017 04:21:11 +0000</resolved>
                                                    <fixVersion>Lustre 2.10.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="193438" author="simmonsja" created="Tue, 25 Apr 2017 20:12:15 +0000"  >&lt;p&gt;I see what happened. The ksocklnd stuff landed first with the intent of last_alive being moved over to time64_t. Later we change the behavior of LNetEQPoll and lnet ping so it went back to the jiffies based system. The ksocklnd code was left behind.&lt;/p&gt;</comment>
                            <comment id="193443" author="gerrit" created="Tue, 25 Apr 2017 20:46:57 +0000"  >&lt;p&gt;James Simmons (uja.ornl@yahoo.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/26813&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/26813&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9397&quot; title=&quot;Inconsistence use of cfs_time_current() and ktime_get_real_seconds()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9397&quot;&gt;&lt;del&gt;LU-9397&lt;/del&gt;&lt;/a&gt; ksocklnd: make last_alive in units of jiffies&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 7006890fcc484a8074a033517a6607e6ace15b8b&lt;/p&gt;</comment>
                            <comment id="193540" author="olaf" created="Wed, 26 Apr 2017 08:00:31 +0000"  >&lt;p&gt;It looks like a similar issue exists for &lt;tt&gt;ksock_conn::ksnc_tx_last_post&lt;/tt&gt;.&lt;/p&gt;</comment>
                            <comment id="193541" author="olaf" created="Wed, 26 Apr 2017 08:10:20 +0000"  >&lt;p&gt;And in &lt;tt&gt;ksocknal_destroy_conn()&lt;/tt&gt; the calculation in the &lt;tt&gt;CERROR()&lt;/tt&gt; involving &lt;tt&gt;last_rcv&lt;/tt&gt; is wrong. &lt;tt&gt;last_rcv&lt;/tt&gt; is in jiffies, is subtracted from &lt;tt&gt;ktime_get_real_seconds()&lt;/tt&gt;, with the result then being converted from jiffies to seconds.&lt;/p&gt;</comment>
                            <comment id="193691" author="ashehata" created="Wed, 26 Apr 2017 23:02:28 +0000"  >&lt;p&gt;aside from Olaf&apos;s comments, I tested the fix and I don&apos;t see the issue any longer&lt;/p&gt;</comment>
                            <comment id="193695" author="simmonsja" created="Wed, 26 Apr 2017 23:20:10 +0000"  >&lt;p&gt;Good we are on the right track. I have to look over the ksocklnd driver and do a proper 64 bit time port.&lt;/p&gt;</comment>
                            <comment id="194096" author="simmonsja" created="Mon, 1 May 2017 23:01:05 +0000"  >&lt;p&gt;I have been looking at the socklnd code and it looks like everything is pretty much needs only second precision. It looks like everything could be changed into time64_t. Olaf do you see cases where we will need higher resolution? When we want to go to jiffies I can use cfs_time_seconds() as the case for the call to lnet_notify() and ksocknal_query(). Other than that I don&apos;t see the need for ktime_t.&lt;/p&gt;</comment>
                            <comment id="194191" author="olaf" created="Tue, 2 May 2017 20:03:54 +0000"  >&lt;p&gt;As far as I can tell, the main argument for jiffies is that they&apos;re cheaper to get and use. The extra resolution doesn&apos;t matter for these cases.&lt;/p&gt;

&lt;p&gt;Using &lt;tt&gt;ktime_get_real_seconds()&lt;/tt&gt; in particular should get you (assuming proper time sync in place) time stamp values that can (easily) be compared between nodes. That by itself might justify this.&lt;/p&gt;</comment>
                            <comment id="194376" author="simmonsja" created="Wed, 3 May 2017 22:11:06 +0000"  >&lt;p&gt;Okay just wanted to verify that was the case for jiffies. The issue with jiffies they can also vary between nodes (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5443&quot; title=&quot;Remove references to defined constant HZ&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5443&quot;&gt;&lt;del&gt;LU-5443&lt;/del&gt;&lt;/a&gt;)  depending on what the user selected for HZ so I like to migrate away as much as possible from them. Currently I&apos;m working on the patch but I have to go over it very carefully. To easy to break things.&lt;/p&gt;</comment>
                            <comment id="197999" author="gerrit" created="Sat, 3 Jun 2017 03:55:23 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/26813/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/26813/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9397&quot; title=&quot;Inconsistence use of cfs_time_current() and ktime_get_real_seconds()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9397&quot;&gt;&lt;del&gt;LU-9397&lt;/del&gt;&lt;/a&gt; ksocklnd: move remaining time handling to 64 bits&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 59c25356208706b4dd0920bc7754f21e2db14a0f&lt;/p&gt;</comment>
                            <comment id="198033" author="pjones" created="Sat, 3 Jun 2017 04:21:11 +0000"  >&lt;p&gt;Landed for 2.10&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="50923">LU-10707</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|hzzb73:</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>