Hello, Lai. On Tue, Apr 07, 2015 at 09:25:59AM +0800, Lai Jiangshan wrote: > On 04/06/2015 11:53 PM, Tejun Heo wrote: > > On Thu, Apr 02, 2015 at 07:14:42PM +0800, Lai Jiangshan wrote: > >> /* make a copy of @attrs and sanitize it */ > >> copy_workqueue_attrs(new_attrs, attrs); > >> - cpumask_and(new_attrs->cpumask, new_attrs->cpumask, > >> wq_unbound_global_cpumask); > >> + copy_workqueue_attrs(pwq_attrs, attrs); > >> + cpumask_and(new_attrs->cpumask, new_attrs->cpumask, cpu_possible_mask); > >> + cpumask_and(pwq_attrs->cpumask, pwq_attrs->cpumask, unbound_cpumask); > > > > Hmmm... why do we need to keep track of both cpu_possible_mask and > > unbound_cpumask? Can't we just make unbound_cpumask replace > > cpu_possible_mask for unbound workqueues? > > > > I want to save the original user-setting cpumask. > > When any time the wq_unbound_global_cpumask is changed, > the new effective cpumask is > the-original-user-setting-cpumask & wq_unbound_global_cpumask > instead of > the-last-effective-cpumask & wq_unbound_global_cpumask.
Yes, I get that, but that'd require just tracking the original configured value and the unbound_cpumask masked value, no? What am I missing? Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/