diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-06-27 07:41:15 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-06-27 08:31:30 -0400 |
commit | 76a2a6ee8a0660a29127f05989ac59ae1ce865fa (patch) | |
tree | 93ae1dd3cc5f564fc1e9d30bcdb0cd313f67221a /kernel/sched_clock.c | |
parent | c09595f63bb1909c5dc4dca288f4fe818561b5f3 (diff) |
sched: sched_clock_cpu() based cpu_clock()
with sched_clock_cpu() being reasonably in sync between cpus (max 1 jiffy
difference) use this to provide cpu_clock().
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Cc: Mike Galbraith <efault@gmx.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_clock.c')
-rw-r--r-- | kernel/sched_clock.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/sched_clock.c b/kernel/sched_clock.c index ce05271219ab..3c696db59452 100644 --- a/kernel/sched_clock.c +++ b/kernel/sched_clock.c | |||
@@ -244,3 +244,15 @@ unsigned long long __attribute__((weak)) sched_clock(void) | |||
244 | { | 244 | { |
245 | return (unsigned long long)jiffies * (NSEC_PER_SEC / HZ); | 245 | return (unsigned long long)jiffies * (NSEC_PER_SEC / HZ); |
246 | } | 246 | } |
247 | |||
248 | unsigned long long cpu_clock(int cpu) | ||
249 | { | ||
250 | unsigned long long clock; | ||
251 | unsigned long flags; | ||
252 | |||
253 | raw_local_irq_save(flags); | ||
254 | clock = sched_clock_cpu(cpu); | ||
255 | raw_local_irq_restore(flags); | ||
256 | |||
257 | return clock; | ||
258 | } | ||