aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched_clock.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2008-06-27 07:41:15 -0400
committerIngo Molnar <mingo@elte.hu>2008-06-27 08:31:30 -0400
commit76a2a6ee8a0660a29127f05989ac59ae1ce865fa (patch)
tree93ae1dd3cc5f564fc1e9d30bcdb0cd313f67221a /kernel/sched_clock.c
parentc09595f63bb1909c5dc4dca288f4fe818561b5f3 (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.c12
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
248unsigned 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}