Received: by 10.223.176.5 with SMTP id f5csp35777wra; Mon, 5 Feb 2018 16:07:10 -0800 (PST) X-Google-Smtp-Source: AH8x224aWDdaiJ2zTcasZ7fiJ7SG7TbdxWbJyISFuHHV2O5dXeVdAO0i4GacjbVTBtaRIJVVWG/N X-Received: by 10.101.78.201 with SMTP id w9mr412686pgq.43.1517875630543; Mon, 05 Feb 2018 16:07:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517875630; cv=none; d=google.com; s=arc-20160816; b=XuAvNqCY4WQUsiZwCZvjG7ykB3NguBlHSQDyfrI+G7aecSD8XUADKGOk3P/fSDJxJU HhjpoMerO9R3Qbvtd2hYUEkbyrRtq7JjhhDsYiVnuebtmfFX2ij5DyJi5G0dGcgz3pUH yCt1kpzGaNukx0oAKJkL/fQ6ztDvW0OSvEOE1rTw//jvTjFLm0QV+ZLxjOtaPAUJEGB+ cjiPNzKV3I6YWo/T5ui2wGvcDbw+/3G74f7Ex3x5fWm/oCxLD0aKB4Yx3FSBeiHIaVbT vdEiPul6XBm4m2/vHviPA0CmWKE4ckoBSYpoGCpVYjCkCIu7QOvVPNle6gotXObHGRp9 HxPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:dlp-filter:cms-type :in-reply-to:subject:cc:to:user-agent:from:date:message-id :content-transfer-encoding:mime-version:dkim-signature:dkim-filter :arc-authentication-results; bh=47NZg/XSIiT521yZJ6RsUuB6uDugDb/yU7hZYwrjkBw=; b=xfq2vZMaCb/Q5zW9XgDjWwaOo5MQpJBR8Qz6bHsaOxsjYSj9VweVZpTeG8aktIV7hi wcWA6narPmyAEwhHaXPY185J/GrZJbocCgNtOjcIWu34Ro6PgzpMXg7arje7ffBTlquy pjao9KWQZCVgSQYBlcpibkxSgcLePD/IugT4xnaZzeQsZMgFuAuGF9RtVqH/b1inc4aW WQ5xfztt3G60W/bloV2Lkcrdo+L3sp9UJycz2QtsPi0j/SJJGFX1wupbtOXv5v16X3TR W64UYKH+a+A1wVu1ROERUQMg5/x8bt0pC4LhNH/dIw/BpC4iAkPnBMP4VJav7WQ1Y2Fg MO/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=bj+56Tmf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id bi12-v6si5468220plb.679.2018.02.05.16.06.55; Mon, 05 Feb 2018 16:07:10 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=bj+56Tmf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752189AbeBFAGF (ORCPT + 99 others); Mon, 5 Feb 2018 19:06:05 -0500 Received: from mailout1.samsung.com ([203.254.224.24]:61688 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752105AbeBFAFu (ORCPT ); Mon, 5 Feb 2018 19:05:50 -0500 Received: from epcas1p3.samsung.com (unknown [182.195.41.47]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20180206000548epoutp0147ca4201230465a0a3ebba95d681aaf4~Qk8TXZLKJ2261522615epoutp01e; Tue, 6 Feb 2018 00:05:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20180206000548epoutp0147ca4201230465a0a3ebba95d681aaf4~Qk8TXZLKJ2261522615epoutp01e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1517875548; bh=47NZg/XSIiT521yZJ6RsUuB6uDugDb/yU7hZYwrjkBw=; h=Date:From:To:Cc:Subject:In-reply-to:References:From; b=bj+56Tmfz/QiYWpxSoo8EQvOOJtAjCXugf1QCMyzDiY8dN0HARNofNIVK6T1mx+DM TVokzdWgog4p3+7ovEWWMg7MDQ2bT2TEaGOh90lpiPHh7nABbZdJwK2GEMvNh15v9r 8mEjeX7lCG0yD3w0/lva+5vuqaiVBd+y53zsS3qk= Received: from epsmges1p5.samsung.com (unknown [182.195.40.65]) by epcas1p1.samsung.com (KnoxPortal) with ESMTP id 20180206000547epcas1p150223cd935ccdae2f413171a3911d9f8~Qk8TDWeBL0089500895epcas1p1C; Tue, 6 Feb 2018 00:05:47 +0000 (GMT) Received: from epcas1p1.samsung.com ( [182.195.41.45]) by epsmges1p5.samsung.com (Symantec Messaging Gateway) with SMTP id 9A.F2.04037.B51F87A5; Tue, 6 Feb 2018 09:05:47 +0900 (KST) Received: from epsmgms2p1new.samsung.com (unknown [182.195.42.142]) by epcas1p2.samsung.com (KnoxPortal) with ESMTP id 20180206000547epcas1p2a052f5add7febaf22283e7b469e5f091~Qk8S0KEwe0737607376epcas1p2Y; Tue, 6 Feb 2018 00:05:47 +0000 (GMT) X-AuditID: b6c32a39-47fff70000000fc5-34-5a78f15b3df3 Received: from epmmp2 ( [203.254.227.17]) by epsmgms2p1new.samsung.com (Symantec Messaging Gateway) with SMTP id C8.4E.03826.B51F87A5; Tue, 6 Feb 2018 09:05:47 +0900 (KST) MIME-version: 1.0 Content-transfer-encoding: 8BIT Content-type: text/plain; charset="utf-8" Received: from [10.113.77.177] by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0P3P00GC2C9N0X80@mmp2.samsung.com>; Tue, 06 Feb 2018 09:05:47 +0900 (KST) Message-id: <5A78F15B.30707@samsung.com> Date: Tue, 06 Feb 2018 09:05:47 +0900 From: Inki Dae User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 To: Arnd Bergmann , Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , David Airlie , Kukjin Kim , Krzysztof Kozlowski Cc: Marek Szyprowski , Tobias Jakobi , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] [v2] drm/exynos: g2d: use monotonic timestamps In-reply-to: <20180117170131.2677586-1-arnd@arndb.de> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFJsWRmVeSWpSXmKPExsWy7bCmrm70x4oogxebNCx6z51ksvg76Ri7 xZWv79ksXty7yGLR//g1s8X58xvYLc42vWG32PT4GqvF5V1z2CxmnN/HZLH2yF12ixmTX7JZ tK3+wOrA6/H71yRGj02rOtk8tn97wOpxv/s4k8fmJfUe/46xe/RtWcXo8XmTXABHVKpNRmpi SmqRQmpecn5KZl66rZJ3cLxzvKmZgaGuoaWFuZJCXmJuqq2Si0+ArltmDtDFSgpliTmlQKGA xOJiJX07m6L80pJUhYz84hJbpWhDQyM9QwNzPSMjIz0T41grI1OgkoTUjI0X9jIVdItVPFhy mb2BsVWoi5GTQ0LAROLbyn62LkYuDiGBHYwSPb09TBDOd0aJ9gfb2GGqnj+ZA1W1gVFiXs8K sASvgKDEj8n3WLoYOTiYBeQljlzKBgkzC2hKvPgyiQXEFhK4xyhxZ2EYRLmGxO7Ji5lAylkE VCUeHnEHCbMBmRNX3GcDsUUFIiR2zv/GDrJKRKCbSeLGn0msIA6zwBtGib2HtjOCVAkLOEts f3aXGcTmFDCVOPJyNwvEoc3sEgfOVkLYLhLPJ5yCigtLvDq+hR1ksYSAtMSlo7YgMyUE2hkl dp29zgbh9DBKLF+8COpjY4lnC7uYIL7hk3j3tYcVoplXoqMNGnQeEhuXrGWFsB0lDr7cyw4J oA5GiQ/77rNPYJSdhRRGsxBhNAspjBYwMq9iFEstKM5NTy02LDDVK07MLS7NS9dLzs/dxAhO l1qWOxiPnfM5xCjAwajEwyuQURElxJpYVlyZe4hRgoNZSYTX6Xp5lBBvSmJlVWpRfnxRaU5q 8SFGU2AYT2SWEk3OB6byvJJ4QxNLAxMzI2CSsjQ0VBLnDQhwiRISSE8sSc1OTS1ILYLpY+Lg lGpgVLJu1H6W7GWTtP1KLVNgdnWWgJz6Kf9flw4fmmbRbrJkoifbXlWVBe3Pw8WEbAP5jkp9 Enl9a6bFY1eb526K1kFFh/7FVTwN+yqy9mHFx+dVMtEXjN+VFW/p/r/toeuimR3/Lh6O2C5y wfrznf6fQk8ClxqyVJx9b5L67sHZ7qtq8zKmGnuHK7EUZyQaajEXFScCADMYilStAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRmVeSWpSXmKPExsVy+t9jQd3ojxVRBqv3Sln0njvJZPF30jF2 iytf37NZvLh3kcWi//FrZovz5zewW5xtesNusenxNVaLy7vmsFnMOL+PyWLtkbvsFjMmv2Sz aFv9gdWB1+P3r0mMHptWdbJ5bP/2gNXjfvdxJo/NS+o9/h1j9+jbsorR4/MmuQCOKC6blNSc zLLUIn27BK6MjRf2MhV0i1U8WHKZvYGxVaiLkZNDQsBE4vmTOWxdjFwcQgLrGCW+r2ljB0nw CghK/Jh8j6WLkYODWUBe4silbAhTXWLKlFyI8geMEkfm/mSGKNeQ2D15MRNIDYuAqsTDI+4g YTYgc+KK+2wgYVGBCInuE5UgrSIC3UwSmxcvYQJxmAXeMEocffuTEaRBWMBZYvuzu8wQC7oY JXauARnKycEpYCpx5OVulgmM/LOQnDcL4bxZCOctYGRexSiZWlCcm55bbFRgmJdarlecmFtc mpeul5yfu4kRGCfbDmv17WC8vyT+EKMAB6MSD29GVkWUEGtiWXFl7iFGCQ5mJRFep+vlUUK8 KYmVValF+fFFpTmpxYcYpTlYlMR5b+cdixQSSE8sSc1OTS1ILYLJMnFwSjUwWvh8Ec4pf65n cIYt/pJtdacmp8PCO9PFtikovVpZfe7p5ssfRAMXKop3NKRlPRIXKZVIrmew0Z1WLvbkqf6r +S+fnapsW2H3Y9393IyCg76fI6fUKdprObbbu8jpnNh1U8VxzlF7s5YNN/zkl1yUmNHXquJ6 dm30nl3WBbuUxc7slD23fRO3EktxRqKhFnNRcSIAUV0Rx48CAAA= X-CMS-MailID: 20180206000547epcas1p2a052f5add7febaf22283e7b469e5f091 X-Msg-Generator: CA CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20180117170211epcas5p12a9b274b2b0d0b0522c909be3644eebb X-RootMTR: 20180117170211epcas5p12a9b274b2b0d0b0522c909be3644eebb References: <20180117170131.2677586-1-arnd@arndb.de> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2018년 01월 18일 02:01에 Arnd Bergmann 이(가) 쓴 글: > The exynos DRM driver uses real-time 'struct timeval' values > for exporting its timestamps to user space. This has multiple > problems: > > 1. signed seconds overflow in y2038 > 2. the 'struct timeval' definition is deprecated in the kernel > 3. time may jump or go backwards after a 'settimeofday()' syscall > 4. other DRM timestamps are in CLOCK_MONOTONIC domain, so they > can't be compared > 5. exporting microseconds requires a division by 1000, which may > be slow on some architectures. > > The code existed in two places before, but the IPP portion was > removed in 8ded59413ccc ("drm/exynos: ipp: Remove Exynos DRM > IPP subsystem"), so we no longer need to worry about it. > > Ideally timestamps should just use 64-bit nanoseconds instead, but > of course we can't change that now. Instead, this tries to address > the first four points above by using monotonic 'timespec' values. > > According to Tobias Jakobi, user space doesn't care about the > timestamp at the moment, so we can change the format. Even if > there is something looking at them, it will work just fine with > monotonic times as long as the application only looks at the > relative values between two events. > > Link: https://patchwork.kernel.org/patch/10038593/ > Cc: Tobias Jakobi > Signed-off-by: Arnd Bergmann Picked it up. Thanks, Inki Dae > --- > v2: rebased to what will be in 4.15, now that ipp is gone, > updated changelog text based on input from Tobias. > --- > drivers/gpu/drm/exynos/exynos_drm_g2d.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c > index 2b8bf2dd6387..9effe40f5fa5 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c > @@ -926,7 +926,7 @@ static void g2d_finish_event(struct g2d_data *g2d, u32 cmdlist_no) > struct drm_device *drm_dev = g2d->subdrv.drm_dev; > struct g2d_runqueue_node *runqueue_node = g2d->runqueue_node; > struct drm_exynos_pending_g2d_event *e; > - struct timeval now; > + struct timespec64 now; > > if (list_empty(&runqueue_node->event_list)) > return; > @@ -934,9 +934,9 @@ static void g2d_finish_event(struct g2d_data *g2d, u32 cmdlist_no) > e = list_first_entry(&runqueue_node->event_list, > struct drm_exynos_pending_g2d_event, base.link); > > - do_gettimeofday(&now); > + ktime_get_ts64(&now); > e->event.tv_sec = now.tv_sec; > - e->event.tv_usec = now.tv_usec; > + e->event.tv_usec = now.tv_nsec / NSEC_PER_USEC; > e->event.cmdlist_no = cmdlist_no; > > drm_send_event(drm_dev, &e->base); >