• Ankita Garg's avatar
    sched: fix accounting in task delay accounting & migration · 46ac22ba
    Ankita Garg authored
    On Thu, Jun 19, 2008 at 12:27:14PM +0200, Peter Zijlstra wrote:
    > On Thu, 2008-06-05 at 10:50 +0530, Ankita Garg wrote:
    >
    > > Thanks Peter for the explanation...
    > >
    > > I agree with the above and that is the reason why I did not see weird
    > > values with cpu_time. But, run_delay still would suffer skews as the end
    > > points for delta could be taken on different cpus due to migration (more
    > > so on RT kernel due to the push-pull operations). With the below patch,
    > > I could not reproduce the issue I had seen earlier. After every dequeue,
    > > we take the delta and start wait measurements from zero when moved to a
    > > different rq.
    >
    > OK, so task delay delay accounting is broken because it doesn't take
    > migration into account.
    >
    > What you've done is make it symmetric wrt enqueue, and account it like
    >
    >   cpu0      cpu1
    >
    > enqueue
    >  <wait-d1>
    > dequeue
    >             enqueue
    >              <wait-d2>
    >             run
    >
    > Where you add both d1 and d2 to the run_delay,.. right?
    >
    
    Thanks for reviewing the patch. The above is exactly what I have done.
    
    > This seems like a good fix, however it looks like the patch will break
    > compilation in !CONFIG_SCHEDSTATS && !CONFIG_TASK_DELAY_ACCT, of it
    > failing to provide a stub for sched_info_dequeue() in that case.
    
    Fixed. Pl. find the new patch below.
    Signed-off-by: default avatarAnkita Garg <ankita@in.ibm.com>
    Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Cc: Gregory Haskins <ghaskins@novell.com>
    Cc: rostedt@goodmis.org
    Cc: suresh.b.siddha@intel.com
    Cc: aneesh.kumar@linux.vnet.ibm.com
    Cc: dhaval@linux.vnet.ibm.com
    Cc: vatsa@linux.vnet.ibm.com
    Cc: David Bahi <DBahi@novell.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    46ac22ba
sched_stats.h 8.03 KB