Re: [PATCH]sched/rt: Do not try to push tasks if pinned task switches to RT

From: Steven Rostedt
Date: Thu Mar 20 2014 - 14:21:54 EST


On Wed, 12 Mar 2014 16:23:48 +0400
Kirill Tkhai <tkhai@xxxxxxxxx> wrote:

> > would there not need to be a check for p->migrate_disable ?
> > push_rt_task() is not checking and so a high prio RT task
> > preemting a low prio RT task in a migrate_disable() section
> > would actually push it off this cpu ? atleast I did not
> > find why that would not happen.
>
> Hi, Nicholas!
>
> p is not rq->curr, so its p->migrate_disable state is already updated and
> it can't be pushed (nr_cpus_allowed == 1 and it's not pushable).
>
> (If I understand right, that you worry about this).
>

Correct. If p has migrate_disabled set and scheduled out, then when it
gets scheduled out, its cpu affinity gets set to only the current cpu
and nr_cpu_allowed to 1. No need to check here if p->migrate_disabled is
set.

-- Steve
--
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/