Re: [PATCH v5] sched/deadline: support dl task migration during cpu hotplug
From: Wanpeng Li
Date: Mon Jan 05 2015 - 21:35:08 EST
Hi Peter,
On Mon, Jan 05, 2015 at 03:52:10PM +0100, Peter Zijlstra wrote:
>On Wed, Nov 12, 2014 at 04:39:06PM +0100, Peter Zijlstra wrote:
>> On Wed, Nov 12, 2014 at 03:08:44PM +0000, Juri Lelli wrote:
>> > > @@ -1185,8 +1223,9 @@ static int find_later_rq(struct task_struct *task)
>> > > * We have to consider system topology and task affinity
>> > > * first, then we can look for a suitable cpu.
>> > > */
>> > > - cpumask_copy(later_mask, task_rq(task)->rd->span);
>> > > - cpumask_and(later_mask, later_mask, cpu_active_mask);
>> > > + cpumask_copy(later_mask, cpu_active_mask);
>> > > + if (likely(task_rq(task)->online))
>> > > + cpumask_and(later_mask, later_mask, task_rq(task)->rd->span);
>> >
>> > So, here you consider the span only when the task_rq is online,
>> > but there might be others cpus still online belonging to the same
>> > rd->span. And you have to consider them when migrating. Actually,
>> > migration must still be restricted to the online cpus of task's
>> > original rd->span, or I fear you can break clustered scheduling.
>>
>> Ah, good point that, we must somehow find the right root domain to
>> 'restore' the task to. Now I'm not entirely sure we still have this.
>> Lemme ponder that.
>
>Ah, we should be able to find this by looking at the cpuset cgroup
>information. The cpuset cgroup knows the available cpumask of this task,
>which we can translate to the correct root domain in two separate ways
>(either run up the cpuset cgroup hierarchy and find the highest domain
>with balancing enabled, or look at whatever the rq->rd is for any one of
>the allowed CPUs of the immediate cgroup this task belongs to).
If the patch Juri pointed out can help to skip the issue?
https://lkml.org/lkml/2014/11/19/293
Regards,
Wanpeng Li
--
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/