From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753851AbbKJPcv (ORCPT ); Tue, 10 Nov 2015 10:32:51 -0500 Received: from www.linutronix.de ([62.245.132.108]:44845 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753599AbbKJPcu (ORCPT ); Tue, 10 Nov 2015 10:32:50 -0500 Date: Tue, 10 Nov 2015 10:31:33 -0500 (EST) From: Thomas Gleixner To: John Stultz cc: Stefano Stabellini , Arnd Bergmann , "linux-arm-kernel@lists.infradead.org" , xen-devel@lists.xensource.com, Ian.Campbell@citrix.com, Peter Zijlstra , lkml , Ingo Molnar Subject: Re: [PATCH v2 1/7] timekeeping: introduce __current_kernel_time64 In-Reply-To: Message-ID: References: <1447156675-7418-1-git-send-email-stefano.stabellini@eu.citrix.com> <4372800.FdTygmcuyo@wuerfel> User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001,URIBL_BLOCKED=0.001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 10 Nov 2015, John Stultz wrote: > On Tue, Nov 10, 2015 at 7:10 AM, Stefano Stabellini > wrote: > > On Tue, 10 Nov 2015, Arnd Bergmann wrote: > >> On Tuesday 10 November 2015 11:57:49 Stefano Stabellini wrote: > >> > __current_kernel_time64 returns a struct timespec64, without taking the > >> > xtime lock. Mirrors __current_kernel_time/current_kernel_time. > >> > > >> > >> Actually it doesn't mirror __current_kernel_time/current_kernel_time > >> > >> > diff --git a/include/linux/timekeeping.h b/include/linux/timekeeping.h > >> > index ec89d84..b5802bf 100644 > >> > --- a/include/linux/timekeeping.h > >> > +++ b/include/linux/timekeeping.h > >> > @@ -19,7 +19,8 @@ extern int do_sys_settimeofday(const struct timespec *tv, > >> > */ > >> > unsigned long get_seconds(void); > >> > struct timespec64 current_kernel_time64(void); > >> > -/* does not take xtime_lock */ > >> > +/* do not take xtime_lock */ > >> > +struct timespec64 __current_kernel_time64(void); > >> > struct timespec __current_kernel_time(void); > >> > >> Please change __current_kernel_time into a static inline function > >> while you are introducing the new one, to match the patch description ;-) > > > > The implementation is: > > > > struct timekeeper *tk = &tk_core.timekeeper; > > > > return timespec64_to_timespec(tk_xtime(tk)); > > > > which cannot be easily made into a static inline, unless we start > > exporting tk_core. > > So the timekeeper is passed to the notifier. So you probably want something like > > struct timespec64 __current_kernel_time64(struct timekeeper *tk) > { > return timespec64_to_timespec(tk_xtime(tk)); > } > > Then you can cast the priv pointer in the notifier to a timekeeper and > use it that way? Err no. Look at commit 8758a240e2d74c5932ab51a73377e6507b7fd441 i.e. Add the new 64bit function and make the existing one a static inline which does the timespec64 to timespec conversion. Thanks, tglx