Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c1e16aa2792a129d8920e22210ef21eb62a0f80a
Commit:     c1e16aa2792a129d8920e22210ef21eb62a0f80a
Parent:     ae73fc093a8cae4d92e22ab8b635e3590e80785d
Author:     Thomas Gleixner <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 28 20:12:19 2007 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Thu Mar 1 14:53:37 2007 -0800

    [PATCH] Fix posix-cpu-timer breakage caused by stale p->last_ran value
    
    Problem description at:
    http://bugzilla.kernel.org/show_bug.cgi?id=8048
    
    Commit b18ec80396834497933d77b81ec0918519f4e2a7
        [PATCH] sched: improve migration accuracy
    optimized the scheduler time calculations, but broke posix-cpu-timers.
    
    The problem is that the p->last_ran value is not updated after a context
    switch.  So a subsequent call to current_sched_time() calculates with a
    stale p->last_ran value, i.e.  accounts the full time, which the task was
    scheduled away.
    
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
    Acked-by: Ingo Molnar <[EMAIL PROTECTED]>
    Cc: <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 kernel/sched.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/sched.c b/kernel/sched.c
index 0dc7572..0c5ebf5 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -3566,7 +3566,7 @@ switch_tasks:
 
        sched_info_switch(prev, next);
        if (likely(prev != next)) {
-               next->timestamp = now;
+               next->timestamp = next->last_ran = now;
                rq->nr_switches++;
                rq->curr = next;
                ++*switch_count;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to