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

Peter Zijlstra
2010-01-20T08:51:44Z

On Wed, 2010-01-20 at 17:35 +0900, Tejun Heo wrote:
> Hello,
>
> On 01/19/2010 05:37 PM, Peter Zijlstra wrote:
> > On Tue, 2010-01-19 at 10:07 +0900, Tejun Heo wrote:
> >>
> >> It's also necessary to guarantee forward progress during CPU_DOWN.
> >> The problem with kthread_bind() is that it's not synchronized against
> >> CPU hotplug operations. It needs outer synchronization like calling
> >> it directly from CPU_DOWN_PREP. I guess it's doable but I think it
> >> would be better to simply share the backend implementation between
> >> set_cpus_allowed_ptr() and kthread_bind().
> >
> > OK, so you're saying you need to migrate the rescue thread during
> > cpu-down. That thread is guaranteed sleeping right,
>
> No, it's not. It might have been tasked to process works from other
> CPUs.

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?