Re: [PATCH 04/40] sched: implement __set_cpus_allowed()

Peter Zijlstra
2010-01-20T08:59:52Z

On Wed, 2010-01-20 at 18:00 +0900, Tejun Heo wrote:
> Hello,
>
> On 01/20/2010 05:50 PM, Peter Zijlstra wrote:
> > OK, so maybe I'm confused, but in general the workqueue thing needs to
> > ensure work affinity, right? So why can we move the rescue thread while
> > its processing another CPU's works?
>
> It doesn't get moved directly. The CPU requests rescuer and rescuer
> will move itself to the CPU when it becomes idle. We can of course
> make the rescuer wake up some other thread and then go to sleep and
> the other thread can kthread_bind() the rescuer to the dying CPU but
> that exactly is what the set_cpus_allowed_ptr() does.

Ah, ok I thought it was all mitigated through the management thread.