From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Subject: Re: [PATCH v2] scsi: gdth: replace struct timeval with ktime_get_real_seconds() Date: Wed, 25 Nov 2015 10:03:57 +0100 Message-ID: <3133545.iF2pfcmJbC@wuerfel> References: <20151119214304.GA16713@d830.WORKGROUP> <1448412247-2716-1-git-send-email-amsfield22@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1448412247-2716-1-git-send-email-amsfield22@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: y2038-bounces@lists.linaro.org Sender: "Y2038" To: y2038@lists.linaro.org Cc: achim_leubner@adaptec.com, JBottomley@odin.com, Alison Schofield , linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org List-Id: linux-scsi@vger.kernel.org T24gVHVlc2RheSAyNCBOb3ZlbWJlciAyMDE1IDE2OjQ0OjA3IEFsaXNvbiBTY2hvZmllbGQgd3Jv dGU6Cj4gc3RydWN0IHRpbWV2YWwgd2lsbCBvdmVyZmxvdyBvbiAzMi1iaXQgc3lzdGVtcyBpbiB5 MjAzOCBhbmQgaXMgYmVpbmcKPiByZW1vdmVkIGZyb20gdGhlIGtlcm5lbC4gUmVwbGFjZSB0aGUg dXNlIG9mIHN0cnVjdCB0aW1ldmFsIGFuZAo+IGRvX2dldHRpbWVvZmRheSgpIHdpdGgga3RpbWVf Z2V0X3JlYWxfc2Vjb25kcygpIHdoaWNoIHByb3ZpZGVzIGEgNjQtYml0Cj4gc2Vjb25kcyB2YWx1 ZSBhbmQgaXMgeTIwMzggc2FmZS4KPiAKPiBnZHRoIGRyaXZlciByZXF1aXJlcyBjaGFuZ2VzIGlu IHR3byBhcmVhczoKPiAKPiAxKSBnZHRoX3N0b3JlX2V2ZW50KCkgbG9hZHMgdHdvIHUzMiB0aW1l c3RhbXAgZmllbGRzIGZvciBpb2N0bCBHRFRJT0NUTF9FVkVOVAo+IAo+ICAgIFRoZXNlIHRpbWVz dGFtcCBmaWVsZHMgYXJlIHBhcnQgb2Ygc3RydWN0IGdkdGhfZXZ0X3N0ciB1c2VkIGZvciBwYXNz aW5nCj4gICAgZXZlbnQgZGF0YSB0byB1c2Vyc3BhY2UuIEF0IHRoZSBmaXJzdCBpbnN0YW5jZSBv ZiBhbiBldmVudCB3ZSBkbwo+ICAgIChmaXJzdF9zdGFtcD1sYXN0X3N0YW1wPSJjdXJyZW50IHRp bWUiKS4gSWYgdGhhdCBzYW1lIGV2ZW50IHJlcGVhdHMsCj4gICAgd2UgZG8gKGxhc3Rfc3RhbXA9 ImN1cnJlbnQgdGltZSIpIEFORCBpbmNyZW1lbnQgc2FtZV9jb3VudCB0byBpbmRpY2F0ZQo+ICAg IGhvdyBtYW55IHRpbWVzIHRoZSBldmVudCBoYXMgcmVwZWF0ZWQgc2luY2UgZmlyc3Rfc3RhbXAu Cj4gCj4gICAgVGhpcyBwYXRjaCByZXBsYWNlcyB0aGUgdXNlIG9mIHRpbWV2YWwgYW5kIGRvX2dl dHRpbWVvZmRheSgpIHdpdGgKPiAgICBrdGltZV9nZXRfcmVhbF9zZWNvbmRzKCkgY2FzdCB0byB1 MzIgdG8gZXh0ZW5kIHRoZSB0aW1lc3RhbXAgZmllbGRzCj4gICAgdG8geTIxMDYuCj4gCj4gICAg QmV5b25kIHkyMTA2LCB0aGUgdXNlcnNwYWNlIHRvb2xzIChpZS4gUkFJRCBjb250cm9sbGVyIG1v bml0b3JzKSBjYW4KPiAgICB3b3JrIGFyb3VuZCB0aGUgdGltZSByb2xsb3ZlciBhbmQgdGhpcyBk cml2ZXIgd291bGQgc3RpbGwgbm90IG5lZWQgdG8KPiAgICBjaGFuZ2UuCj4gCj4gICAgQWx0ZXJu YXRpdmU6IFRoZSBhbHRlcm5hdGl2ZSBhcHByb2FjaCBpcyB0byBpbnRyb2R1Y2UgYSBuZXcgaW9j dGwgaW4gZ2R0aAo+ICAgIHdpdGggdGhlIHUzMiB0aW1lIGZpZWxkcyBkZWZpbmVkIGFzIHU2NC4g IFRoaXMgd291bGQgcmVxdWlyZSB1c2Vyc3BhY2UKPiAgICBjaGFuZ2VzIG5vdywgYnV0IG5vdCBp biB5MjEwNi4KPiAKPiAyKSAgZ2R0aF9zaG93X2luZm8oKSBjYWxjdWxhdGVzIGVsYXBzZWQgdGlt ZSB1c2luZyB1MzIgZmlyc3Rfc3RhbXAKPiAKPiAgICAgSXQgaXMgYWRkaW5nIGV2ZW50cyB3aXRo IHRpbWVzdGFtcHMgdG8gYSBzZXFfZmlsZS4gIFRpbWVzdGFtcHMgYXJlCj4gICAgIGNhbGN1bGF0 ZWQgYXMgdGhlICJjdXJyZW50IHRpbWUiIG1pbnVzIHRoZSBmaXJzdF9zdGFtcC4KPiAKPiAgICAg VGhpcyBwYXRjaCByZXBsYWNlcyB0aGUgdXNlIG9mIHRpbWV2YWwgYW5kIGRvX2dldHRpbWVvZmRh eSgpIHdpdGgKPiAgICAga3RpbWVfZ2V0X3JlYWxfc2Vjb25kcygpIGNhc3QgdG8gdTMyIHRvIGNh bGN1bGF0ZSB0aGUgdGltZXN0YW1wLgo+IAo+ICAgICBUaGlzIGVsYXBzZWQgdGltZSBjYWxjdWxh dGlvbiBpcyBzYWZlIGV2ZW4gd2hlbiB0aGUgdGltZSB3cmFwcyAoYmV5b25kCj4gICAgIHkyMTA2 KSBkdWUgdG8gaG93IHVuc2lnbmVkIHN1YnRyYWN0aW9uIHdvcmtzLiBBIGNvbW1lbnQgaGFzIGJl ZW4gYWRkZWQKPiAgICAgdG8gdGhlIGNvZGUgdG8gaW5kaWNhdGUgdGhpcyBzYWZldHkuCj4gCj4g ICAgIEFsdGVybmF0aXZlOiBUaGlzIHBpZWNlIGl0c2VsZiBkb2Vzbid0IHdhcnJhbnQgYW4gYWx0 ZXJuYXRpdmUsIGJ1dAo+ICAgICBpZiB3ZSBkbyBpbnRyb2R1Y2UgYSBuZXcgc3RydWN0dXJlICYg aW9jdGwgd2l0aCB1NjQgdGltZXN0YW1wcywgdGhpcwo+ICAgICB3b3VsZCBjaGFuZ2UgYWNjb3Jk aW5nbHkuCj4gCj4gU2lnbmVkLW9mZi1ieTogQWxpc29uIFNjaG9maWVsZCA8YW1zZmllbGQyMkBn bWFpbC5jb20+CgpSZXZpZXdlZC1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWTIwMzggbWFpbGlu ZyBsaXN0ClkyMDM4QGxpc3RzLmxpbmFyby5vcmcKaHR0cHM6Ly9saXN0cy5saW5hcm8ub3JnL21h aWxtYW4vbGlzdGluZm8veTIwMzgK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754849AbbKYJEY (ORCPT ); Wed, 25 Nov 2015 04:04:24 -0500 Received: from mout.kundenserver.de ([212.227.126.130]:50352 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754767AbbKYJEQ (ORCPT ); Wed, 25 Nov 2015 04:04:16 -0500 From: Arnd Bergmann To: y2038@lists.linaro.org Cc: Alison Schofield , achim_leubner@adaptec.com, JBottomley@odin.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [Y2038] [PATCH v2] scsi: gdth: replace struct timeval with ktime_get_real_seconds() Date: Wed, 25 Nov 2015 10:03:57 +0100 Message-ID: <3133545.iF2pfcmJbC@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <1448412247-2716-1-git-send-email-amsfield22@gmail.com> References: <20151119214304.GA16713@d830.WORKGROUP> <1448412247-2716-1-git-send-email-amsfield22@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:wPeujA0tBk5J/3rwxgOtts9n2RBmb1BQHMROYeW1DuwB0XIGfiJ eHv96/Wmd5b7pTOBK0kU7KA3As6Ny3EPYfaXOQJHN7PLbXAcG1SbXo+nDUPs/8AsTdXxOGi IspJ6FRBJmGm7Rudmf/bVoUA2yotdRkx3WlA7XoERfJqEHxa1mAjF5doYldmjthmtHZiST9 fhICcth9EJ+2HlgvlFQOQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:Ow9ISbdDZvw=:znMtGnpO/343df601zUKm2 OMuB3REGCRJtovTPjrZcaRqKfp56HI+Rfi7ITqR1E2M7VJn76zPVGEqY5uh7iYN/Ba8gPHFXk P4uVm/4jaenhktRhESqjVucKnHn+6MG7kMU9kgbbVDnAZdRuWkihMrJ3P3N0MONCMXYixx4EF ANxYKgvA4aJ5d2jxclK0SMBAdndzcU0CayXHXNHQaV0dH6BR5mPWaW8KUeqzxFxf4OhRl5OjB HR8vn0Gyga15zOaMoINlLc+Era3UCeTTomrOD7UN8e3WUxKNOk52V1/fZ1gaWYxQXyDpMnrna Kr5qzwxhBKYX+yE2fTNQ5UG2QPd2eIwP4dRSPdqBp6tvyB/AwiqDyVnL8zLYd7KP1oY3TTh+I 10uLtnhhudJq5p6tIs0rwDTWw9LlubVCb9C0W73SGWlLaCDYVMYGrwgfeC2PdwNEAmfTD3+Xh vwJu+AgP82m6l4lm5A56A3X/UwJZVZsBsxe8PD+/pIOjnOnmprypQTtVTRIoInZM7rq34ZfWo Mle5NNGF3BEEoOAnUALTCAbylPZbMT7EUOUoeArhFk48d41iLHc/saYi21sbN8Z0t5kT2cZrU 0H3KXGj9ZjXcF2Zbx11dNkr7ci/WtD2+IWk/qdeBaKy/NPeqqqyImAzrJjau00N5w4ODM91KW 1H+6rhGej/snPqCKAOgGfle11CiAyBI4wndPB0ED91Ozpe11lPSkeIrdmqX+b0yJovBPp+FQ2 nDFlr5K6TOKnzizA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday 24 November 2015 16:44:07 Alison Schofield wrote: > struct timeval will overflow on 32-bit systems in y2038 and is being > removed from the kernel. Replace the use of struct timeval and > do_gettimeofday() with ktime_get_real_seconds() which provides a 64-bit > seconds value and is y2038 safe. > > gdth driver requires changes in two areas: > > 1) gdth_store_event() loads two u32 timestamp fields for ioctl GDTIOCTL_EVENT > > These timestamp fields are part of struct gdth_evt_str used for passing > event data to userspace. At the first instance of an event we do > (first_stamp=last_stamp="current time"). If that same event repeats, > we do (last_stamp="current time") AND increment same_count to indicate > how many times the event has repeated since first_stamp. > > This patch replaces the use of timeval and do_gettimeofday() with > ktime_get_real_seconds() cast to u32 to extend the timestamp fields > to y2106. > > Beyond y2106, the userspace tools (ie. RAID controller monitors) can > work around the time rollover and this driver would still not need to > change. > > Alternative: The alternative approach is to introduce a new ioctl in gdth > with the u32 time fields defined as u64. This would require userspace > changes now, but not in y2106. > > 2) gdth_show_info() calculates elapsed time using u32 first_stamp > > It is adding events with timestamps to a seq_file. Timestamps are > calculated as the "current time" minus the first_stamp. > > This patch replaces the use of timeval and do_gettimeofday() with > ktime_get_real_seconds() cast to u32 to calculate the timestamp. > > This elapsed time calculation is safe even when the time wraps (beyond > y2106) due to how unsigned subtraction works. A comment has been added > to the code to indicate this safety. > > Alternative: This piece itself doesn't warrant an alternative, but > if we do introduce a new structure & ioctl with u64 timestamps, this > would change accordingly. > > Signed-off-by: Alison Schofield Reviewed-by: Arnd Bergmann