On Tue, 10 Jun 2014, Li Zefan wrote: > > Yes, the rcu lock is not providing protection for any critical section > > here that requires (1) the forker's cpuset to be stored in > > cpuset_being_rebound or (2) the forked thread's cpuset to be rebound by > > the cpuset nodemask update, and no race involving the two. > > > > Yes, this is a long-standing issue. Besides the race you described, the child > task's mems_allowed can be wrong if the cpuset's nodemask changes before the > child has been added to the cgroup's tasklist. > > I remember Tejun once said he wanted to disallow task migration between > cgroups during fork, and that should fix this problem. > Ok, I don't want to fix it in cpusets if cgroups will eventually prevent it, so I need an understanding of the long term plan. Will cgroups continue to allow migration during fork(), Tejun? > > It needs to be slightly rewritten to work properly without negatively > > impacting the latency of fork(). Do you have the cycles to do it? > > > > Sounds you have other idea? > It wouldn't be too difficult with a cgroup post fork callback into the cpuset code to rebind the nodemask if it has changed, but with my above concern those might be yanked out eventually :) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>