Messages in this thread | | | Date | Mon, 6 Apr 2015 21:58:17 -0400 | From | Tejun Heo <> | Subject | Re: [PATCH 4/4 V6] workqueue: Allow modifying low level unbound workqueue cpumask |
| |
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
| |