On Thu, Oct 13, 2016 at 05:35:54PM +0200, gregkh@xxxxxxxxxxxxxxxxxxx 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 <stable@xxxxxxxxxxxxxxx> 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" <christopher.s.hall@xxxxxxxxx> > Date: Mon, 22 Feb 2016 03:15:19 -0800 > Subject: time: Add cycles to nanoseconds translation > > From: Christopher S. Hall <christopher.s.hall@xxxxxxxxx> > > 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 <prarit@xxxxxxxxxx> > Cc: Richard Cochran <richardcochran@xxxxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx> > Cc: kevin.b.stanton@xxxxxxxxx > Cc: kevin.j.clarke@xxxxxxxxx > Cc: hpa@xxxxxxxxx > Cc: jeffrey.t.kirsher@xxxxxxxxx > Cc: netdev@xxxxxxxxxxxxxxx > Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Signed-off-by: Christopher S. Hall <christopher.s.hall@xxxxxxxxx> > Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > --- > 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@xxxxxxxxx are > > queue-4.4/time-add-cycles-to-nanoseconds-translation.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html