From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vincent ABRIOU Subject: Re: [PATCH] drm/sti: Use 64-bit timestamps Date: Mon, 18 Apr 2016 12:02:35 +0200 Message-ID: <5714B0BB.1020306@st.com> References: <20160413092802.GA99759@localhost> <7376001.70fALvhWdv@wuerfel> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <7376001.70fALvhWdv@wuerfel> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: y2038-bounces@lists.linaro.org Sender: "Y2038" To: Arnd Bergmann , "y2038@lists.linaro.org" Cc: David Airlie , Benjamin Gaignard , Tina Ruchandani , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org T24gMDQvMTcvMjAxNiAwMTozOSBBTSwgQXJuZCBCZXJnbWFubiB3cm90ZToKPiBPbiBXZWRuZXNk YXkgMTMgQXByaWwgMjAxNiAwMjoyODowMiBUaW5hIFJ1Y2hhbmRhbmkgd3JvdGU6Cj4+ICdzdHJ1 Y3QgdGltZXNwZWMnIHVzZXMgYSAzMi1iaXQgZmllbGQgZm9yIHNlY29uZHMsIHdoaWNoCj4+IHdp bGwgb3ZlcmZsb3cgaW4geWVhciAyMDM4IGFuZCBiZXlvbmQuIFRoaXMgcGF0Y2ggaXMgcGFydAo+ PiBvZiBhIGxhcmdlciBhdHRlbXB0IHRvIHJlbW92ZSBpbnN0YW5jZXMgb2YgdGltZXZhbCwgdGlt ZXNwZWMKPj4gYW5kIHRpbWVfdCwgYWxsIG9mIHdoaWNoIHN1ZmZlciBmcm9tIHRoZSB5MjAzOCBp c3N1ZSwgZnJvbSB0aGUKPj4ga2VybmVsLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBUaW5hIFJ1Y2hh bmRhbmkgPHJ1Y2hhbmRhbmkudGluYUBnbWFpbC5jb20+Cj4KPiBMb29rcyBnb29kIGluIHByaW5j aXBsZS4gVHdvIHNtYWxsIHBvaW50czoKPgo+PiAgIHZvaWQgc3RpX3BsYW5lX3VwZGF0ZV9mcHMo c3RydWN0IHN0aV9wbGFuZSAqcGxhbmUsCj4+ICAgCQkJICBib29sIG5ld19mcmFtZSwKPj4gICAJ CQkgIGJvb2wgbmV3X2ZpZWxkKQo+PiAgIHsKPj4gLQlzdHJ1Y3QgdGltZXNwZWMgbm93Owo+PiAr CWt0aW1lX3Qgbm93Owo+PiAgIAlzdHJ1Y3Qgc3RpX2Zwc19pbmZvICpmcHM7Cj4+ICAgCWludCBm cGtzLCBmaXBrcywgbXNfc2luY2VfbGFzdCwgbnVtX2ZyYW1lcywgbnVtX2ZpZWxkczsKPj4KPj4g LQlnZXRyYXdtb25vdG9uaWMoJm5vdyk7Cj4+ICsJbm93ID0ga3RpbWVfZ2V0KCk7Cj4KPiBJdCdz IHVuY2xlYXIgd2h5IHRoZSBkcml2ZXIgd2FzIHVzaW5nIGdldHJhd21vbm90b25pYygpIGhlcmUg cmF0aGVyCj4gdGhhbiBrdGltZV9nZXRfdHMoKS4gVGhlIGNvZGUgaXMgZmFpcmx5IG5ldywgc28g VmluY2VudCBjYW4KPiBwcm9iYWJseSBleHBsYWluIHRoaXMuCj4KPiBJZiBpdCB3YXMgaW50ZW50 aW9uYWwsIHdlIHNob3VsZCB1c2Uga3RpbWVfZ2V0X3JhdygpIGluc3RlYWQgb2YKPiBrdGltZV9n ZXQoKS4KPgoKZ2V0cmF3bW9ub3RvbmljIGNvbWVzIGZyb20gYSBsZWdhY3kgY29kZSBzbyB0aGUg dXNlIGlzIG5vdCBpbnRlbnRpb25hbC4KSG9uZXN0bHksIGl0IGlzIG5vdCBjbGVhciB0byBtZSB0 aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIG1vbm90b25pYyBhbmQgCnJhd21vbm90b25pYy4gQnV0IGlu IHRoZSBkZWJ1ZyBjb250ZXh0IGluIHdoaWNoIGl0IGlzIHVzZWQsIGt0aW1lX2dldCAKYW5kIGt0 aW1lX2dldF9yYXcgd2lsbCBkZWxpdmVyIHRoZSBzYW1lIGxldmVsIG9mIGluZm9ybWF0aW9uIHdl IG5lZWQuIFNvIAppbXBsZW1lbnRhdGlvbiBkb25lIGJ5IFRpbmEgaXMgZmluZSBmb3IgbWUuCgpW aW5jZW50Cgo+PiBAQCAtNzYsNyArNjYsNyBAQCB2b2lkIHN0aV9wbGFuZV91cGRhdGVfZnBzKHN0 cnVjdCBzdGlfcGxhbmUgKnBsYW5lLAo+PiAgIAkJcmV0dXJuOwo+Pgo+PiAgIAlmcHMtPmN1cnJf ZnJhbWVfY291bnRlcisrOwo+PiAtCW1zX3NpbmNlX2xhc3QgPSBzdGlfcGxhbmVfdGltZXNwZWNf bXNfZGlmZihub3csIGZwcy0+bGFzdF90aW1lc3RhbXApOwo+PiArCW1zX3NpbmNlX2xhc3QgPSBr dGltZV90b19tcyhrdGltZV9zdWIobm93LCBmcHMtPmxhc3RfdGltZXN0YW1wKSk7Cj4+ICAgCW51 bV9mcmFtZXMgPSBmcHMtPmN1cnJfZnJhbWVfY291bnRlciAtIGZwcy0+bGFzdF9mcmFtZV9jb3Vu dGVyOwo+Cj4gVGhpcyBjb3VsZCBiZSBleHByZXNzZWQgaW4gYSBtb3JlIGNvbXBhY3Qgd2F5IHVz aW5nIGt0aW1lX21zX2RlbHRhKCkuCj4KPiAJQXJuZAo+Cl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClkyMDM4IG1haWxpbmcgbGlzdApZMjAzOEBsaXN0cy5s aW5hcm8ub3JnCmh0dHBzOi8vbGlzdHMubGluYXJvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3kyMDM4 Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752420AbcDRKCy (ORCPT ); Mon, 18 Apr 2016 06:02:54 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:10878 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752324AbcDRKCw convert rfc822-to-8bit (ORCPT ); Mon, 18 Apr 2016 06:02:52 -0400 From: Vincent ABRIOU To: Arnd Bergmann , "y2038@lists.linaro.org" CC: Tina Ruchandani , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , David Airlie , Benjamin Gaignard Date: Mon, 18 Apr 2016 12:02:35 +0200 Subject: Re: [Y2038] [PATCH] drm/sti: Use 64-bit timestamps Thread-Topic: [Y2038] [PATCH] drm/sti: Use 64-bit timestamps Thread-Index: AdGZWW61PUYhr/MiQzOArZiD18TN/A== Message-ID: <5714B0BB.1020306@st.com> References: <20160413092802.GA99759@localhost> <7376001.70fALvhWdv@wuerfel> In-Reply-To: <7376001.70fALvhWdv@wuerfel> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 acceptlanguage: en-US Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-04-18_06:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/17/2016 01:39 AM, Arnd Bergmann wrote: > On Wednesday 13 April 2016 02:28:02 Tina Ruchandani wrote: >> 'struct timespec' uses a 32-bit field for seconds, which >> will overflow in year 2038 and beyond. This patch is part >> of a larger attempt to remove instances of timeval, timespec >> and time_t, all of which suffer from the y2038 issue, from the >> kernel. >> >> Signed-off-by: Tina Ruchandani > > Looks good in principle. Two small points: > >> void sti_plane_update_fps(struct sti_plane *plane, >> bool new_frame, >> bool new_field) >> { >> - struct timespec now; >> + ktime_t now; >> struct sti_fps_info *fps; >> int fpks, fipks, ms_since_last, num_frames, num_fields; >> >> - getrawmonotonic(&now); >> + now = ktime_get(); > > It's unclear why the driver was using getrawmonotonic() here rather > than ktime_get_ts(). The code is fairly new, so Vincent can > probably explain this. > > If it was intentional, we should use ktime_get_raw() instead of > ktime_get(). > getrawmonotonic comes from a legacy code so the use is not intentional. Honestly, it is not clear to me the difference between monotonic and rawmonotonic. But in the debug context in which it is used, ktime_get and ktime_get_raw will deliver the same level of information we need. So implementation done by Tina is fine for me. Vincent >> @@ -76,7 +66,7 @@ void sti_plane_update_fps(struct sti_plane *plane, >> return; >> >> fps->curr_frame_counter++; >> - ms_since_last = sti_plane_timespec_ms_diff(now, fps->last_timestamp); >> + ms_since_last = ktime_to_ms(ktime_sub(now, fps->last_timestamp)); >> num_frames = fps->curr_frame_counter - fps->last_frame_counter; > > This could be expressed in a more compact way using ktime_ms_delta(). > > Arnd >