Hello,
On Fri, Sep 14, 2012 at 08:23:41PM +0200, Peter Zijlstra wrote:
Its hotplug, all hotplug stuff is synchronous, the last thing hotplug
needs is the added complexity of async callbacks. Also pushing stuff out
into worklets just to work around locking issues is vile.
I was asking whether it *has* to be part of synchronous CPU hotplug
operation. IOW, do all tasks in the depleted cgroup have to be moved
to its parent before CPU hotunplug can proceed to completion or is it
okay to happen afterwards? Making the migration part asynchronous
doesn't add much complexity. The only thing you have to make sure is
flushing the previously scheduled one from the next CPU_UP_PREPARE.
Also note that this can't easily be solved by splitting tree
protecting inner lock from the outer lock. We're talking about doing
full migration operations which likely require the outer one too.
<handwave as I never can remember all the cgroup stuff/>
Can't we play games by pinning both cgroups with a reference and playing
games with threadgroup_change / task_lock for the individual tasks being
moved about?
I'm lost. Can you please elaborate?
Thanks.
--
tejun