From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751368AbdBAJvK (ORCPT ); Wed, 1 Feb 2017 04:51:10 -0500 Received: from terminus.zytor.com ([65.50.211.136]:53852 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751086AbdBAJvI (ORCPT ); Wed, 1 Feb 2017 04:51:08 -0500 Date: Wed, 1 Feb 2017 01:49:44 -0800 From: tip-bot for Frederic Weisbecker Message-ID: 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 Reply-To: tony.luck@intel.com, linux-kernel@vger.kernel.org, riel@redhat.com, mpe@ellerman.id.au, mingo@kernel.org, peterz@infradead.org, hpa@zytor.com, wanpeng.li@hotmail.com, sgruszka@redhat.com, fenghua.yu@intel.com, tglx@linutronix.de, heiko.carstens@de.ibm.com, benh@kernel.crashing.org, fweisbec@gmail.com, schwidefsky@de.ibm.com, paulus@samba.org In-Reply-To: <1485832191-26889-1-git-send-email-fweisbec@gmail.com> References: <1485832191-26889-1-git-send-email-fweisbec@gmail.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:sched/core] jiffies: Reuse TICK_NSEC instead of NSEC_PER_JIFFY Git-Commit-ID: 93825f2ec736f30e034ab7c9d56b42849c5b00da X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 93825f2ec736f30e034ab7c9d56b42849c5b00da Gitweb: http://git.kernel.org/tip/93825f2ec736f30e034ab7c9d56b42849c5b00da Author: Frederic Weisbecker AuthorDate: Tue, 31 Jan 2017 04:09:16 +0100 Committer: Ingo Molnar 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 Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Tony Luck Cc: Fenghua Yu Cc: Peter Zijlstra Cc: Rik van Riel Cc: Stanislaw Gruszka Cc: Wanpeng Li Link: http://lkml.kernel.org/r/1485832191-26889-1-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar --- 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);