From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt0-f175.google.com ([209.85.216.175]:33367 "EHLO mail-qt0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754840AbcJMSoP (ORCPT ); Thu, 13 Oct 2016 14:44:15 -0400 Received: by mail-qt0-f175.google.com with SMTP id s49so54798279qta.0 for ; Thu, 13 Oct 2016 11:43:23 -0700 (PDT) Date: Thu, 13 Oct 2016 19:39:47 +0200 From: Richard Cochran To: gregkh@linuxfoundation.org Cc: christopher.s.hall@intel.com, john.stultz@linaro.org, luto@amacapital.net, mingo@kernel.org, prarit@redhat.com, tglx@linutronix.de, stable@vger.kernel.org, stable-commits@vger.kernel.org Subject: Re: Patch "time: Add cycles to nanoseconds translation" has been added to the 4.4-stable tree Message-ID: <20161013173947.GA15112@localhost.localdomain> References: <1476372954216250@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1476372954216250@kroah.com> Sender: stable-owner@vger.kernel.org List-ID: On Thu, Oct 13, 2016 at 05:35:54PM +0200, gregkh@linuxfoundation.org wrote: > > This is a note to let you know that I've just added the patch titled > > time: Add cycles to nanoseconds translation > > to the 4.4-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > The filename of the patch is: > time-add-cycles-to-nanoseconds-translation.patch > and it can be found in the queue-4.4 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let know about it. IIRC, this one is not any kind of bug fix, but rather in support of new functionality. Thanks, Richard > From 6bd58f09e1d8cc6c50a824c00bf0d617919986a1 Mon Sep 17 00:00:00 2001 > From: "Christopher S. Hall" > Date: Mon, 22 Feb 2016 03:15:19 -0800 > Subject: time: Add cycles to nanoseconds translation > > From: Christopher S. Hall > > commit 6bd58f09e1d8cc6c50a824c00bf0d617919986a1 upstream. > > The timekeeping code does not currently provide a way to translate > externally provided clocksource cycles to system time. The cycle count > is always provided by the result clocksource read() method internal to > the timekeeping code. The added function timekeeping_cycles_to_ns() > calculated a nanosecond value from a cycle count that can be added to > tk_read_base.base value yielding the current system time. This allows > clocksource cycle values external to the timekeeping code to provide a > cycle count that can be transformed to system time. > > Cc: Prarit Bhargava > Cc: Richard Cochran > Cc: Thomas Gleixner > Cc: Ingo Molnar > Cc: Andy Lutomirski > Cc: kevin.b.stanton@intel.com > Cc: kevin.j.clarke@intel.com > Cc: hpa@zytor.com > Cc: jeffrey.t.kirsher@intel.com > Cc: netdev@vger.kernel.org > Reviewed-by: Thomas Gleixner > Signed-off-by: Christopher S. Hall > Signed-off-by: John Stultz > Signed-off-by: Greg Kroah-Hartman > > --- > kernel/time/timekeeping.c | 25 +++++++++++++++++++++---- > 1 file changed, 21 insertions(+), 4 deletions(-) > > --- a/kernel/time/timekeeping.c > +++ b/kernel/time/timekeeping.c > @@ -298,17 +298,34 @@ u32 (*arch_gettimeoffset)(void) = defaul > static inline u32 arch_gettimeoffset(void) { return 0; } > #endif > > +static inline s64 timekeeping_delta_to_ns(struct tk_read_base *tkr, > + cycle_t delta) > +{ > + s64 nsec; > + > + nsec = delta * tkr->mult + tkr->xtime_nsec; > + nsec >>= tkr->shift; > + > + /* If arch requires, add in get_arch_timeoffset() */ > + return nsec + arch_gettimeoffset(); > +} > + > static inline s64 timekeeping_get_ns(struct tk_read_base *tkr) > { > cycle_t delta; > - s64 nsec; > > delta = timekeeping_get_delta(tkr); > + return timekeeping_delta_to_ns(tkr, delta); > +} > > - nsec = (delta * tkr->mult + tkr->xtime_nsec) >> tkr->shift; > +static inline s64 timekeeping_cycles_to_ns(struct tk_read_base *tkr, > + cycle_t cycles) > +{ > + cycle_t delta; > > - /* If arch requires, add in get_arch_timeoffset() */ > - return nsec + arch_gettimeoffset(); > + /* calculate the delta since the last update_wall_time */ > + delta = clocksource_delta(cycles, tkr->cycle_last, tkr->mask); > + return timekeeping_delta_to_ns(tkr, delta); > } > > /** > > > Patches currently in stable-queue which might be from christopher.s.hall@intel.com are > > queue-4.4/time-add-cycles-to-nanoseconds-translation.patch