Re: [PATCH 2/2] sched: Rewrite per entity runnable load average tracking

From: Yuyang Du
Date: Fri Jul 11 2014 - 06:04:23 EST


On Fri, Jul 11, 2014 at 08:52:01AM +0800, Yuyang Du wrote:
> On Fri, Jul 11, 2014 at 10:47:09AM +0200, Peter Zijlstra wrote:
> > On Fri, Jul 11, 2014 at 07:22:07AM +0800, Yuyang Du wrote:
> > > On Thu, Jul 10, 2014 at 12:08:59PM +0200, Peter Zijlstra wrote:
> > > >
> > > > Since clock_task is the regular clock minus some local amount, the
> > > > difference between two regular clock reads is always a strict upper
> > > > bound on clock_task differences.
> > > >
> > > This is inspiring. Regarding the clock source in load avg tracking,
> > > should we simply use rq_clock_task instead of cfs_rq_clock_task.
> >
> > Oh *groan* I forgot about that thing. But no, it obviously doesn't
> > matter for running time, because if you're throttled you're nor running
> > and therefore it all doesn't matter, but it can make a huge difference
> > for blocked time accounting I suppose.
> >
> > > For the bandwidth control case, just update/increase the last_update_time when
> > > unthrottled by this throttled time, so the time would look like freezed. Am I
> > > understanding right?
> >
> > Yes, it stops the clock when throttled.
> >
> > > Not sure how much bandwidth control is used, but even not used, every time
> > > we read cfs_rq_clock_task, will burn useless cycles here.
> >
> > Yep, nothing much you can do about that.
> >
> > In any case, it is still the case that a normal clock difference is an
> > upper bound.
>
> I meant, not for this migrating case. But completely don't use cfs_rq_clock_task
> in the entire load avg tracking (and specially compensate the throttle case). No?
>
Oh, there seems no way to change every task's last_update_time when unthrottled.

Still, need cfs_rq_clock_task.

Thanks,
Yuyang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/