From: Torben Hohn <torbenh@gmx.de>
To: linux-kernel@vger.kernel.org
Cc: tglx@linutronix.de, johnstul@us.ibm.com, hch@infradead.org,
yong.zhang0@gmail.com, Torben Hohn <torbenh@gmx.de>
Subject: [PATCH 11/18] ia64: switch do_timer() to xtime_update()
Date: Sat, 22 Jan 2011 00:06:57 +0100 [thread overview]
Message-ID: <1295651224-29823-12-git-send-email-torbenh@gmx.de> (raw)
In-Reply-To: <1295651224-29823-1-git-send-email-torbenh@gmx.de>
local_cpu_data->itm_next = new_itm; does not need to be protected
by this lock. and xtime_update() takes the lock itself.
Signed-off-by: Torben Hohn <torbenh@gmx.de>
---
arch/ia64/kernel/time.c | 19 +++++--------------
arch/ia64/xen/time.c | 13 +++++--------
2 files changed, 10 insertions(+), 22 deletions(-)
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 9702fa9..156ad80 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -190,19 +190,10 @@ timer_interrupt (int irq, void *dev_id)
new_itm += local_cpu_data->itm_delta;
- if (smp_processor_id() == time_keeper_id) {
- /*
- * Here we are in the timer irq handler. We have irqs locally
- * disabled, but we don't know if the timer_bh is running on
- * another CPU. We need to avoid to SMP race by acquiring the
- * xtime_lock.
- */
- write_seqlock(&xtime_lock);
- do_timer(1);
- local_cpu_data->itm_next = new_itm;
- write_sequnlock(&xtime_lock);
- } else
- local_cpu_data->itm_next = new_itm;
+ if (smp_processor_id() == time_keeper_id)
+ xtime_update(1);
+
+ local_cpu_data->itm_next = new_itm;
if (time_after(new_itm, ia64_get_itc()))
break;
@@ -222,7 +213,7 @@ skip_process_time_accounting:
* comfort, we increase the safety margin by
* intentionally dropping the next tick(s). We do NOT
* update itm.next because that would force us to call
- * do_timer() which in turn would let our clock run
+ * xtime_update() which in turn would let our clock run
* too fast (with the potentially devastating effect
* of losing monotony of time).
*/
diff --git a/arch/ia64/xen/time.c b/arch/ia64/xen/time.c
index c1c5445..1f8244a 100644
--- a/arch/ia64/xen/time.c
+++ b/arch/ia64/xen/time.c
@@ -139,14 +139,11 @@ consider_steal_time(unsigned long new_itm)
run_posix_cpu_timers(p);
delta_itm += local_cpu_data->itm_delta * (stolen + blocked);
- if (cpu == time_keeper_id) {
- write_seqlock(&xtime_lock);
- do_timer(stolen + blocked);
- local_cpu_data->itm_next = delta_itm + new_itm;
- write_sequnlock(&xtime_lock);
- } else {
- local_cpu_data->itm_next = delta_itm + new_itm;
- }
+ if (cpu == time_keeper_id)
+ xtime_update(stolen + blocked);
+
+ local_cpu_data->itm_next = delta_itm + new_itm;
+
per_cpu(xen_stolen_time, cpu) += NS_PER_TICK * stolen;
per_cpu(xen_blocked_time, cpu) += NS_PER_TICK * blocked;
}
--
1.7.2.3
next prev parent reply other threads:[~2011-01-22 0:15 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-21 23:06 make arch code use xtime_update() instead of do_timer() Torben Hohn
2011-01-21 23:06 ` [PATCH 01/18] move do_timer() from kernel/timer.c into kernel/time/timekeeping.c Torben Hohn
2011-01-22 9:45 ` Thomas Gleixner
2011-01-24 20:32 ` john stultz
2011-01-24 22:10 ` Thomas Gleixner
2011-01-24 22:21 ` Peter Zijlstra
2011-01-24 22:44 ` Thomas Gleixner
2011-01-25 9:08 ` Peter Zijlstra
2011-01-25 10:34 ` Peter Zijlstra
2011-01-25 16:51 ` Peter Zijlstra
2011-01-26 5:56 ` Yong Zhang
2011-01-26 6:49 ` Yong Zhang
2011-01-26 10:03 ` Peter Zijlstra
2011-01-26 11:11 ` Yong Zhang
2011-01-21 23:06 ` [PATCH 02/18] provide xtime_update() which does not require holding xtime_lock like do_timer() Torben Hohn
2011-01-22 10:36 ` Thomas Gleixner
2011-01-21 23:06 ` [PATCH 03/18] alpha: change do_timer() to xtime_update() Torben Hohn
2011-01-21 23:06 ` [PATCH 04/18] arm: switch from " Torben Hohn
2011-01-21 23:06 ` [PATCH 05/18] arm/mach-clps711x: switch " Torben Hohn
2011-01-21 23:06 ` [PATCH 06/18] blackfin: switch from " Torben Hohn
2011-01-21 23:06 ` [PATCH 07/18] cris/arch-v10: switch " Torben Hohn
2011-01-21 23:06 ` [PATCH 08/18] cris/arch-v32: " Torben Hohn
2011-01-21 23:06 ` [PATCH 09/18] frv: " Torben Hohn
2011-01-22 10:01 ` Thomas Gleixner
2011-01-24 12:51 ` torbenh
2011-01-24 13:09 ` Thomas Gleixner
2011-01-21 23:06 ` [PATCH 10/18] h8300: " Torben Hohn
2011-01-21 23:06 ` Torben Hohn [this message]
2011-01-21 23:06 ` [PATCH 12/18] m32r: switch from " Torben Hohn
2011-01-21 23:06 ` [PATCH 13/18] m68k: switch " Torben Hohn
2011-01-21 23:07 ` [PATCH 14/18] mn10300: switch do_timer() to xtimer_update() Torben Hohn
2011-01-21 23:07 ` [PATCH 15/18] parisc: switch do_timer() to xtime_update() Torben Hohn
2011-01-21 23:07 ` [PATCH 16/18] sparc: " Torben Hohn
2011-01-22 0:51 ` David Miller
2011-01-21 23:07 ` [PATCH 17/18] xtensa: " Torben Hohn
2011-01-21 23:07 ` [PATCH 18/18] make do_timer() and xtime_lock private to the timer code Torben Hohn
2011-01-22 10:14 ` make arch code use xtime_update() instead of do_timer() Thomas Gleixner
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=1295651224-29823-12-git-send-email-torbenh@gmx.de \
--to=torbenh@gmx.de \
--cc=hch@infradead.org \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=yong.zhang0@gmail.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 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®