Hello, Li. On Fri, Aug 23, 2013 at 03:46:47PM +0800, Li Zefan wrote: > On 2013/8/21 22:08, Tejun Heo wrote: > > On Wed, Aug 21, 2013 at 06:00:42PM +0800, Li Zefan wrote: > >> @@ -2261,7 +2271,8 @@ static void cpuset_hotplug_workfn(struct work_struct *work) > >> /* synchronize mems_allowed to N_MEMORY */ > >> if (mems_updated) { > >> mutex_lock(&callback_mutex); > >> - top_cpuset.mems_allowed = new_mems; > >> + if (!sane) > >> + top_cpuset.mems_allowed = new_mems; > > > > Can you please further explain how the top cgroup behaves? > > > > top_cpuset.cpus_allowed will always be cpu_active_mask if sane_behavior > is not set, otherwise it will always be cpu_possible_mask. While > top_cpuset.effective_cpus will always be cpu_active_mask in either > case. Just in case it wasn't clear, it'd be great if you can also explain what's going on w.r.t. sane_behavior in the comments and patch description. Having dual modes of operation can always be quite confusing so I think some documentation could be very beneficial. Thanks! -- tejun _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers