sched: enable early use of sched_clock()

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <git-commits-head@...>
Date: Friday, December 7, 2007 - 3:59 pm

Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8ced5f...
Commit:     8ced5f69e4bc09adcc6442e090e2e64c197246cf
Parent:     5f9fa8a62d6a98f5cb2ee2e00b85bfe95e45888d
Author:     Ingo Molnar <mingo@elte.hu>
AuthorDate: Fri Dec 7 19:02:47 2007 +0100
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Fri Dec 7 19:02:47 2007 +0100

    sched: enable early use of sched_clock()
    
    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 <mingo@elte.hu>
---
 kernel/sched.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

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);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
sched: enable early use of sched_clock(), Linux Kernel Mailing List..., (Fri Dec 7, 3:59 pm)