Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1570280

[PATCH RESEND 01/36] jiffies: Reuse TICK_NSEC instead of NSEC_PER_JIFFY

From Frederic Weisbecker <fweisbec@gmail.com>
Newsgroups linux.kernel
Subject [PATCH RESEND 01/36] jiffies: Reuse TICK_NSEC instead of NSEC_PER_JIFFY
Date 2017-01-31 04:20 +0100
Message-ID <t5x97-3Wp-3@gated-at.bofh.it> (permalink)
References <t5c4F-7WV-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


NSEC_PER_JIFFY is an ad-hoc redefinition of TICK_NSEC. Let's rather
use a unique and well maintained version.

Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: Wanpeng Li <wanpeng.li@hotmail.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
---
 kernel/time/jiffies.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c
index a4a0e47..7906b3f 100644
--- a/kernel/time/jiffies.c
+++ b/kernel/time/jiffies.c
@@ -27,19 +27,8 @@
 
 #include "timekeeping.h"
 
-/* The Jiffies based clocksource is the lowest common
- * denominator clock source which should function on
- * all systems. It has the same coarse resolution as
- * the timer interrupt frequency HZ and it suffers
- * inaccuracies caused by missed or lost timer
- * interrupts and the inability for the timer
- * interrupt hardware to accuratly tick at the
- * requested HZ value. It is also not recommended
- * for "tick-less" systems.
- */
-#define NSEC_PER_JIFFY	((NSEC_PER_SEC+HZ/2)/HZ)
 
-/* Since jiffies uses a simple NSEC_PER_JIFFY multiplier
+/* Since jiffies uses a simple TICK_NSEC multiplier
  * conversion, the .shift value could be zero. However
  * this would make NTP adjustments impossible as they are
  * in units of 1/2^.shift. Thus we use JIFFIES_SHIFT to
@@ -47,8 +36,8 @@
  * amount, and give ntp adjustments in units of 1/2^8
  *
  * The value 8 is somewhat carefully chosen, as anything
- * larger can result in overflows. NSEC_PER_JIFFY grows as
- * HZ shrinks, so values greater than 8 overflow 32bits when
+ * larger can result in overflows. TICK_NSEC grows as HZ
+ * shrinks, so values greater than 8 overflow 32bits when
  * HZ=100.
  */
 #if HZ < 34
@@ -64,12 +53,23 @@ static u64 jiffies_read(struct clocksource *cs)
 	return (u64) jiffies;
 }
 
+/*
+ * The Jiffies based clocksource is the lowest common
+ * denominator clock source which should function on
+ * all systems. It has the same coarse resolution as
+ * the timer interrupt frequency HZ and it suffers
+ * inaccuracies caused by missed or lost timer
+ * interrupts and the inability for the timer
+ * interrupt hardware to accuratly tick at the
+ * requested HZ value. It is also not recommended
+ * for "tick-less" systems.
+ */
 static struct clocksource clocksource_jiffies = {
 	.name		= "jiffies",
 	.rating		= 1, /* lowest valid rating*/
 	.read		= jiffies_read,
 	.mask		= CLOCKSOURCE_MASK(32),
-	.mult		= NSEC_PER_JIFFY << JIFFIES_SHIFT, /* details above */
+	.mult		= TICK_NSEC << JIFFIES_SHIFT, /* details above */
 	.shift		= JIFFIES_SHIFT,
 	.max_cycles	= 10,
 };
@@ -125,7 +125,7 @@ int register_refined_jiffies(long cycles_per_second)
 	shift_hz += cycles_per_tick/2;
 	do_div(shift_hz, cycles_per_tick);
 	/* Calculate nsec_per_tick using shift_hz */
-	nsec_per_tick = (u64)NSEC_PER_SEC << 8;
+	nsec_per_tick = (u64)TICK_NSEC << 8;
 	nsec_per_tick += (u32)shift_hz/2;
 	do_div(nsec_per_tick, (u32)shift_hz);
 
-- 
2.7.4

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[GIT PULL] cputime: Convert core use of cputime_t to nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-30 05:50 +0100
  Re: [GIT PULL] cputime: Convert core use of cputime_t to nsecs Stanislaw Gruszka <sgruszka@redhat.com> - 2017-01-30 15:40 +0100
    Re: [GIT PULL] cputime: Convert core use of cputime_t to nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-30 16:10 +0100
      Re: [GIT PULL] cputime: Convert core use of cputime_t to nsecs Stanislaw Gruszka <sgruszka@redhat.com> - 2017-01-30 17:00 +0100
  [PATCH RESEND 01/36] jiffies: Reuse TICK_NSEC instead of NSEC_PER_JIFFY Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:20 +0100
    [PATCH RESEND 04/36] cputime: Convert kcpustat to nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:30 +0100
      [tip:sched/core] sched/cputime: Convert kcpustat to nsecs tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:00 +0100
    [PATCH RESEND 24/36] cputime: Push time to account_idle_time() in nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:30 +0100
      [tip:sched/core] sched/cputime: Push time to account_idle_time() in  nsecs tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:10 +0100
    [PATCH RESEND 25/36] cputime: Push time to account_system_time() in nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:30 +0100
      [tip:sched/core] sched/cputime: Push time to account_system_time()  in nsecs tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:10 +0100
    [PATCH RESEND 16/36] signal: Convert obsolete cputime type to nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:30 +0100
      [tip:sched/core] signal: Convert obsolete cputime type to nsecs tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:10 +0100
    [PATCH RESEND 27/36] vtime: Return nsecs instead of cputime_t to account Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:30 +0100
      [tip:sched/core] sched/cputime, vtime: Return nsecs instead of  cputime_t to account tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:10 +0100
    [PATCH RESEND 09/36] alpha: Convert obsolete cputime_t to nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:30 +0100
      [tip:sched/core] alpha: Convert obsolete cputime_t to nsecs tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:00 +0100
    [PATCH RESEND 12/36] binfmt: Convert obsolete cputime type to nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:30 +0100
      [tip:sched/core] fs/binfmt: Convert obsolete cputime type to nsecs tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:00 +0100
    [PATCH RESEND 30/36] ia64: Convert vtime to use nsec units directly Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:40 +0100
      [tip:sched/core] ia64: Convert vtime to use nsec units directly tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:10 +0100
    [PATCH RESEND 05/36] macintosh/rack-meter: Remove cputime_t internal use Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:40 +0100
      [tip:sched/core] macintosh/rack-meter: Convert cputime64_t use to  u64 tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 12:00 +0100
    [PATCH RESEND 07/36] cputime: Special API to return old-typed cputime Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:40 +0100
      [tip:sched/core] sched/cputime: Introduce special task_cputime_t()  API to return old-typed cputime tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:00 +0100
    [PATCH RESEND 02/36] time: Introduce jiffies64_to_nsecs() Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:50 +0100
      [tip:sched/core] time: Introduce jiffies64_to_nsecs() tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:00 +0100
    [PATCH RESEND 26/36] cputime: Complete nsec conversion of tick based accounting Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:50 +0100
      [tip:sched/core] sched/cputime: Complete nsec conversion of tick  based accounting tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:10 +0100
    [PATCH RESEND 17/36] cputime: Increment kcpustat directly on irqtime account Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 04:50 +0100
      [tip:sched/core] sched/cputime: Increment kcpustat directly on  irqtime account tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:10 +0100
    [PATCH RESEND 10/36] x86: Convert obsolete cputime type to nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 05:20 +0100
      [tip:sched/core] x86: Convert obsolete cputime type to nsecs tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:00 +0100
    [PATCH RESEND 33/36] powerpc: Remove unused cputime definitions Frederic Weisbecker <fweisbec@gmail.com> - 2017-01-31 05:30 +0100
      [tip:sched/core] powerpc, sched/cputime: Remove unused cputime  definitions tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:10 +0100
    [tip:sched/core] jiffies: Reuse TICK_NSEC instead of NSEC_PER_JIFFY tip-bot for Frederic Weisbecker <tipbot@zytor.com> - 2017-02-01 11:00 +0100
  Re: [GIT PULL] cputime: Convert core use of cputime_t to nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-02-06 14:50 +0100
    Re: [GIT PULL] cputime: Convert core use of cputime_t to nsecs Ingo Molnar <mingo@kernel.org> - 2017-02-07 09:10 +0100
      Re: [GIT PULL] cputime: Convert core use of cputime_t to nsecs Frederic Weisbecker <fweisbec@gmail.com> - 2017-02-07 15:10 +0100
        Re: [GIT PULL] cputime: Convert core use of cputime_t to nsecs Ingo Molnar <mingo@kernel.org> - 2017-02-07 20:00 +0100

csiph-web