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

Tejun Heo
2010-01-20T08:55:01Z

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.

Thanks.

--
tejun