Re: [RFC v2 2/7] Correctly track the active utilisation for migrating tasks

From: luca abeni
Date: Tue Apr 05 2016 - 12:51:16 EST


On Tue, 5 Apr 2016 14:24:25 +0200
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
[...]
> > @@ -1618,7 +1620,9 @@ static void pull_dl_task(struct rq *this_rq)
> > resched = true;
> >
> > deactivate_task(src_rq, p, 0);
> > + sub_running_bw(&p->dl, &src_rq->dl);
> > set_task_cpu(p, this_cpu);
> > + add_running_bw(&p->dl, &this_rq->dl);
> > activate_task(this_rq, p, 0);
> > dmin = p->dl.deadline;
> >
>
> Are these the only places a DL task might be migrated from? In
> particular I worry about the case where we assign an existing DL task to
> a different cpuset.
I was under the impression that these (+ the select_task_rq_dl() thing)
covered all of the migration cases... But I was probably wrong: now that
you say this, I realise that I never tested moving dl tasks between
different cpusets.

I'll test that, and fix the patch if some new issue appears.



Thanks,
Luca