From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751071AbdE3Jin (ORCPT ); Tue, 30 May 2017 05:38:43 -0400 Received: from foss.arm.com ([217.140.101.70]:56092 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750911AbdE3Jij (ORCPT ); Tue, 30 May 2017 05:38:39 -0400 Date: Tue, 30 May 2017 10:38:43 +0100 From: Will Deacon To: John Stultz Cc: lkml , Thomas Gleixner , Ingo Molnar , Miroslav Lichvar , Richard Cochran , Prarit Bhargava , Stephen Boyd , Kevin Brodsky , Daniel Mentz Subject: Re: [RFC][PATCH 3/4] arm64: vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW Message-ID: <20170530093842.GA32289@arm.com> References: <1495856035-6622-1-git-send-email-john.stultz@linaro.org> <1495856035-6622-4-git-send-email-john.stultz@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1495856035-6622-4-git-send-email-john.stultz@linaro.org> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, May 26, 2017 at 08:33:54PM -0700, John Stultz wrote: > From: Will Deacon > > Commit 45a7905fc48f ("arm64: vdso: defer shifting of nanosecond > component of timespec") fixed sub-ns inaccuracies in our vDSO > clock_gettime implementation by deferring the right-shift of the > nanoseconds components until after the timespec addition, which > operates on left-shifted values. That worked nicely until > support for CLOCK_MONOTONIC_RAW was added in 49eea433b326 > ("arm64: Add support for CLOCK_MONOTONIC_RAW in clock_gettime() > vDSO"). Noticing that the core timekeeping code never set > tkr_raw.xtime_nsec, the vDSO implementation didn't bother > exposing it via the data page and instead took the unshifted > tk->raw_time.tv_nsec value which was then immediately shifted > left in the vDSO code. > > Now that the core code is actually setting tkr_raw.xtime_nsec, > we need to take that into account in the vDSO by adding it to > the shifted raw_time value. Rather than do that at each use (and > expand the data page in the process), instead perform the > shift/addition operation when populating the data page and > remove the shift from the vDSO code entirely. > > Cc: Thomas Gleixner > Cc: Ingo Molnar > Cc: Miroslav Lichvar > Cc: Richard Cochran > Cc: Prarit Bhargava > Cc: Stephen Boyd > Cc: Kevin Brodsky > Cc: Will Deacon > Cc: Daniel Mentz > Reported-by: John Stultz > Acked-by: Acked-by: Kevin Brodsky I don't think Kevin liked it *that* much ^^ Will