projects/linux·commit 8ced5f69

sched: enable early use of sched_clock()

8ced5f69 · Ingo Molnar <[email protected]> · 2007-12-07 19:02:47 +01:00

some platforms have sched_clock() implementations that cannot be called
very early during wakeup. If it's called it might hang or crash in hard
to debug ways. So only call update_rq_clock() [which calls sched_clock()]
if sched_init() has already been called. (rq->idle is NULL before the
scheduler is initialized.)

Signed-off-by: Ingo Molnar <[email protected]>
Commit
8ced5f69e4bc09adcc6442e090e2e64c197246cf
Parents
5f9fa8a6

Changes

1 files changed · +6 −1

FileStatusAddDelContent
kernel/sched.cmodified+6−1View file

kernel/sched.c

View file
diff --git a/kernel/sched.c b/kernel/sched.c
index 67d9d17..c6e551d 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -488,7 +488,12 @@ unsigned long long cpu_clock(int cpu)
local_irq_save(flags);
rq = cpu_rq(cpu);
- update_rq_clock(rq);
+ /*
+ * Only call sched_clock() if the scheduler has already been
+ * initialized (some code might call cpu_clock() very early):
+ */
+ if (rq->idle)
+ update_rq_clock(rq);
now = rq->clock;
local_irq_restore(flags);