Messages in this thread | | | Date | Tue, 6 Jan 2015 10:14:58 +0800 | From | Wanpeng Li <> | Subject | Re: [PATCH v5] sched/deadline: support dl task migration during cpu hotplug |
| |
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
| |