From: tip-bot for Frederic Weisbecker <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: mingo@kernel.org, linux-kernel@vger.kernel.org, riel@redhat.com,
mpe@ellerman.id.au, tony.luck@intel.com, hpa@zytor.com,
peterz@infradead.org, heiko.carstens@de.ibm.com,
tglx@linutronix.de, fenghua.yu@intel.com, wanpeng.li@hotmail.com,
sgruszka@redhat.com, paulus@samba.org, schwidefsky@de.ibm.com,
fweisbec@gmail.com, benh@kernel.crashing.org
Subject: [tip:sched/core] jiffies: Reuse TICK_NSEC instead of NSEC_PER_JIFFY
Date: Wed, 1 Feb 2017 01:49:44 -0800 [thread overview]
Message-ID: <tip-93825f2ec736f30e034ab7c9d56b42849c5b00da@git.kernel.org> (raw)
In-Reply-To: <1485832191-26889-1-git-send-email-fweisbec@gmail.com>
Commit-ID: 93825f2ec736f30e034ab7c9d56b42849c5b00da
Gitweb: http://git.kernel.org/tip/93825f2ec736f30e034ab7c9d56b42849c5b00da
Author: Frederic Weisbecker <fweisbec@gmail.com>
AuthorDate: Tue, 31 Jan 2017 04:09:16 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 1 Feb 2017 09:13:45 +0100
jiffies: Reuse TICK_NSEC instead of NSEC_PER_JIFFY
NSEC_PER_JIFFY is an ad-hoc redefinition of TICK_NSEC. Let's rather
use a unique and well maintained version.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
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: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: Wanpeng Li <wanpeng.li@hotmail.com>
Link: http://lkml.kernel.org/r/1485832191-26889-1-git-send-email-fweisbec@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
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);
next prev parent reply other threads:[~2017-02-01 9:51 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-30 4:46 [GIT PULL] cputime: Convert core use of cputime_t to nsecs Frederic Weisbecker
2017-01-30 14:32 ` Stanislaw Gruszka
2017-01-30 14:56 ` Frederic Weisbecker
2017-01-30 15:29 ` Stanislaw Gruszka
2017-01-31 3:09 ` [PATCH RESEND 01/36] jiffies: Reuse TICK_NSEC instead of NSEC_PER_JIFFY Frederic Weisbecker
2017-02-01 9:49 ` tip-bot for Frederic Weisbecker [this message]
2017-01-31 3:09 ` [PATCH RESEND 02/36] time: Introduce jiffies64_to_nsecs() Frederic Weisbecker
2017-02-01 9:50 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 03/36] sched: Remove unused INIT_CPUTIME macro Frederic Weisbecker
2017-02-01 9:50 ` [tip:sched/core] sched/cputime: Remove the " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 04/36] cputime: Convert kcpustat to nsecs Frederic Weisbecker
2017-02-01 9:51 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 05/36] macintosh/rack-meter: Remove cputime_t internal use Frederic Weisbecker
2017-02-01 9:51 ` [tip:sched/core] macintosh/rack-meter: Convert cputime64_t use to u64 tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 06/36] cputime: Convert guest time accounting to nsecs Frederic Weisbecker
2017-02-01 9:52 ` [tip:sched/core] sched/cputime: Convert guest time accounting to nsecs (u64) tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 07/36] cputime: Special API to return old-typed cputime Frederic Weisbecker
2017-02-01 9:52 ` [tip:sched/core] sched/cputime: Introduce special task_cputime_t() " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 08/36] cputime: Convert task/group cputime to nsecs Frederic Weisbecker
2017-02-01 9:53 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 09/36] alpha: Convert obsolete cputime_t " Frederic Weisbecker
2017-02-01 9:53 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 10/36] x86: Convert obsolete cputime type " Frederic Weisbecker
2017-02-01 9:54 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 11/36] isdn: " Frederic Weisbecker
2017-02-01 9:54 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 12/36] binfmt: " Frederic Weisbecker
2017-02-01 9:55 ` [tip:sched/core] fs/binfmt: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 13/36] acct: " Frederic Weisbecker
2017-02-01 9:55 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 14/36] delaycct: " Frederic Weisbecker
2017-02-01 9:56 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 15/36] tsacct: " Frederic Weisbecker
2017-02-01 9:56 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 16/36] signal: " Frederic Weisbecker
2017-02-01 9:57 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 17/36] cputime: Increment kcpustat directly on irqtime account Frederic Weisbecker
2017-02-01 9:58 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 18/36] posix-timers: Use TICK_NSEC instead of a dynamically ad-hoc calculated version Frederic Weisbecker
2017-02-01 9:58 ` [tip:sched/core] timers/posix-timers: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 19/36] posix-timers: Convert internals to use nsecs Frederic Weisbecker
2017-02-01 9:59 ` [tip:sched/core] timers/posix-timers: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 20/36] itimer: Convert internal cputime_t units to nsec Frederic Weisbecker
2017-02-01 9:59 ` [tip:sched/core] timers/itimer: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 21/36] sched: Remove temporary cputime_t accessors Frederic Weisbecker
2017-02-01 10:00 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 22/36] cputime: Push time to account_user_time() in nsecs Frederic Weisbecker
2017-02-01 10:00 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 23/36] cputime: Push time to account_steal_time() " Frederic Weisbecker
2017-02-01 10:01 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 24/36] cputime: Push time to account_idle_time() " Frederic Weisbecker
2017-02-01 10:01 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 25/36] cputime: Push time to account_system_time() " Frederic Weisbecker
2017-02-01 10:02 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 26/36] cputime: Complete nsec conversion of tick based accounting Frederic Weisbecker
2017-02-01 10:02 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 27/36] vtime: Return nsecs instead of cputime_t to account Frederic Weisbecker
2017-02-01 10:03 ` [tip:sched/core] sched/cputime, " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 28/36] cputime: Remove jiffies based cputime Frederic Weisbecker
2017-02-01 10:03 ` [tip:sched/core] sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 29/36] ia64: Move nsecs based cputime headers to the last arch using it Frederic Weisbecker
2017-02-01 10:04 ` [tip:sched/core] ia64, sched/cputime: Move the " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 30/36] ia64: Convert vtime to use nsec units directly Frederic Weisbecker
2017-02-01 10:04 ` [tip:sched/core] " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 31/36] ia64: Remove unused cputime definitions Frederic Weisbecker
2017-02-01 10:05 ` [tip:sched/core] ia64, sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 32/36] s390: Make arch_cpu_idle_time() to return nsecs Frederic Weisbecker
2017-02-01 10:05 ` [tip:sched/core] s390, sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 33/36] powerpc: Remove unused cputime definitions Frederic Weisbecker
2017-02-01 10:06 ` [tip:sched/core] powerpc, sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 34/36] s390: " Frederic Weisbecker
2017-02-01 10:06 ` [tip:sched/core] s390, sched/cputime: " tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 35/36] cputime: Remove unused nsec_to_cputime Frederic Weisbecker
2017-02-01 10:07 ` [tip:sched/core] sched/cputime: Remove unused nsec_to_cputime() tip-bot for Frederic Weisbecker
2017-01-31 3:09 ` [PATCH RESEND 36/36] cputime: Remove asm generic headers Frederic Weisbecker
2017-02-01 10:07 ` [tip:sched/core] sched/cputime: Remove generic asm headers tip-bot for Frederic Weisbecker
2017-02-06 13:49 ` [GIT PULL] cputime: Convert core use of cputime_t to nsecs Frederic Weisbecker
2017-02-07 8:08 ` Ingo Molnar
2017-02-07 14:06 ` Frederic Weisbecker
2017-02-07 18:41 ` Ingo Molnar
2017-02-21 5:08 ` hejianet
2017-02-22 14:30 ` Frederic Weisbecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-93825f2ec736f30e034ab7c9d56b42849c5b00da@git.kernel.org \
--to=tipbot@zytor.com \
--cc=benh@kernel.crashing.org \
--cc=fenghua.yu@intel.com \
--cc=fweisbec@gmail.com \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=riel@redhat.com \
--cc=schwidefsky@de.ibm.com \
--cc=sgruszka@redhat.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=wanpeng.li@hotmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.