From: Frederic Weisbecker <fweisbec@gmail.com>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Steven Rostedt <rostedt@goodmis.org>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
John Stultz <john.stultz@linaro.org>,
Alex Shi <alex.shi@linaro.org>, Kevin Hilman <khilman@linaro.org>
Subject: [PATCH 08/13] nohz: Get timekeeping max deferment outside jiffies_lock
Date: Tue, 17 Dec 2013 23:51:27 +0100 [thread overview]
Message-ID: <1387320692-28460-9-git-send-email-fweisbec@gmail.com> (raw)
In-Reply-To: <1387320692-28460-1-git-send-email-fweisbec@gmail.com>
We don't need to fetch the timekeeping max deferment under the
jiffies_lock seqlock.
If the clocksource is updated concurrently while we stop the tick,
stop machine is called and the tick will be reevaluated again along with
uptodate jiffies and its related values.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Alex Shi <alex.shi@linaro.org>
Cc: Kevin Hilman <khilman@linaro.org>
---
kernel/time/tick-sched.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 9a91c31..0d2d774 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -532,12 +532,13 @@ static ktime_t tick_nohz_stop_sched_tick(struct tick_sched *ts,
struct clock_event_device *dev = __get_cpu_var(tick_cpu_device).evtdev;
u64 time_delta;
+ time_delta = timekeeping_max_deferment();
+
/* Read jiffies and the time when jiffies were updated last */
do {
seq = read_seqbegin(&jiffies_lock);
last_update = last_jiffies_update;
last_jiffies = jiffies;
- time_delta = timekeeping_max_deferment();
} while (read_seqretry(&jiffies_lock, seq));
if (rcu_needs_cpu(cpu, &rcu_delta_jiffies) ||
--
1.8.3.1
next prev parent reply other threads:[~2013-12-17 22:51 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-17 22:51 [RFC PATCH 00/13] nohz: Use sysidle detection to let the timekeeper sleep Frederic Weisbecker
2013-12-17 22:51 ` [PATCH 01/13] tick: Rename tick_check_idle() to tick_irq_enter() Frederic Weisbecker
2014-01-25 14:22 ` [tip:timers/urgent] " tip-bot for Frederic Weisbecker
2013-12-17 22:51 ` [PATCH 02/13] time: New helper to check CPU eligibility to handle timekeeping Frederic Weisbecker
2013-12-17 22:51 ` [PATCH 03/13] rcu: Exclude all potential timekeepers from sysidle detection Frederic Weisbecker
2013-12-17 23:27 ` Paul E. McKenney
2013-12-17 23:49 ` Frederic Weisbecker
2013-12-18 11:43 ` Peter Zijlstra
2013-12-18 11:46 ` Peter Zijlstra
2013-12-18 14:15 ` Paul E. McKenney
2013-12-18 16:24 ` Frederic Weisbecker
2013-12-17 22:51 ` [PATCH 04/13] tick: Use timekeeping_cpu() to elect the CPU handling timekeeping duty Frederic Weisbecker
2013-12-17 23:55 ` Paul E. McKenney
2013-12-17 22:51 ` [PATCH 05/13] rcu: Fix unraised IPI to timekeeping CPU Frederic Weisbecker
2013-12-17 23:21 ` Paul E. McKenney
2013-12-18 14:13 ` Frederic Weisbecker
2013-12-18 14:22 ` Paul E. McKenney
2013-12-18 14:56 ` Frederic Weisbecker
2013-12-18 15:11 ` Peter Zijlstra
2013-12-18 15:58 ` Frederic Weisbecker
2013-12-18 12:12 ` Peter Zijlstra
2013-12-18 15:38 ` Frederic Weisbecker
2013-12-18 15:45 ` Christoph Hellwig
2013-12-18 17:10 ` Peter Zijlstra
2013-12-17 22:51 ` [PATCH 06/13] nohz: Introduce full dynticks' default timekeeping target Frederic Weisbecker
2013-12-17 23:54 ` Paul E. McKenney
2013-12-17 22:51 ` [PATCH 07/13] sched: Enable IPI reception on timekeeper under nohz full system Frederic Weisbecker
2013-12-17 23:52 ` Paul E. McKenney
2013-12-18 14:49 ` Frederic Weisbecker
2013-12-18 15:50 ` Paul E. McKenney
2013-12-18 10:06 ` Peter Zijlstra
2013-12-17 22:51 ` Frederic Weisbecker [this message]
2014-01-25 14:22 ` [tip:timers/urgent] nohz: Get timekeeping max deferment outside jiffies_lock tip-bot for Frederic Weisbecker
2013-12-17 22:51 ` [PATCH 09/13] nohz: Allow timekeeper's tick to stop when all full dynticks CPUs are idle Frederic Weisbecker
2013-12-17 23:51 ` Paul E. McKenney
2013-12-18 14:36 ` Frederic Weisbecker
2013-12-18 15:29 ` Paul E. McKenney
2013-12-17 22:51 ` [PATCH 10/13] nohz: Hand over timekeeping duty on cpu offlining Frederic Weisbecker
2013-12-17 23:40 ` Paul E. McKenney
2013-12-18 14:19 ` Frederic Weisbecker
2013-12-18 12:30 ` Peter Zijlstra
2013-12-18 16:43 ` Frederic Weisbecker
2013-12-17 22:51 ` [PATCH 11/13] nohz: Wake up timekeeper on exit from sysidle state Frederic Weisbecker
2013-12-17 23:34 ` Paul E. McKenney
2013-12-17 23:52 ` Frederic Weisbecker
2013-12-17 22:51 ` [PATCH 12/13] nohz: Allow all CPUs outside nohz_full range to do timekeeping Frederic Weisbecker
2013-12-17 23:32 ` Paul E. McKenney
2013-12-17 22:51 ` [PATCH 13/13] nohz_full: fix code style issue of tick_nohz_full_stop_tick Frederic Weisbecker
2013-12-18 2:04 ` [RFC PATCH 00/13] nohz: Use sysidle detection to let the timekeeper sleep Alex Shi
2013-12-18 10:19 ` Peter Zijlstra
2013-12-18 14:18 ` Paul E. McKenney
2013-12-18 17:43 ` Frederic Weisbecker
2013-12-18 21:29 ` Andy Lutomirski
2013-12-18 21:49 ` Paul E. McKenney
2013-12-18 21:53 ` Andy Lutomirski
2013-12-18 21:57 ` Paul E. McKenney
2013-12-18 22:55 ` Andy Lutomirski
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=1387320692-28460-9-git-send-email-fweisbec@gmail.com \
--to=fweisbec@gmail.com \
--cc=alex.shi@linaro.org \
--cc=john.stultz@linaro.org \
--cc=khilman@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®