All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lai Jiangshan <laijs@cn.fujitsu.com>
To: Tejun Heo <tj@kernel.org>
Cc: <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 3/5] workqueue: ensure attrs-changing be sequentially
Date: Tue, 12 May 2015 13:09:50 +0800	[thread overview]
Message-ID: <55518B1E.8010309@cn.fujitsu.com> (raw)
In-Reply-To: <20150511145502.GD11388@htj.duckdns.org>

On 05/11/2015 10:55 PM, Tejun Heo wrote:
> Hey,
> 
> Prolly a better subject is "ensure attrs changes are properly
> synchronized"
> 
> On Mon, May 11, 2015 at 05:35:50PM +0800, Lai Jiangshan wrote:
>> Current modification to attrs via sysfs is not atomically.
> 
> 						 atomic.
> 
>>
>> Process A (change cpumask)	| Process B (change numa affinity)
>> wq_cpumask_store()		|
>>   wq_sysfs_prep_attrs()		|
> 				^
> 				misaligned

It is aligned in email, misaligned in quoted email, and misaligned
in `git log` and `git show`, aligned in `git commit` when I wrote
the changelog. 

I will just remove all the |.

> 
>> 				| apply_workqueue_attrs()
>>   apply_workqueue_attrs()	|
>>
>> It results that the Process B's operation is totally reverted
>> without any notification.
> 
> Yeah, right.
> 
>> This behavior is acceptable but it is sometimes unexpected.
> 
> I don't think this is an acceptable behavior.
> 
>> Sequential model on non-performance-sensitive operations is more popular
>> and preferred. So this patch moves wq_sysfs_prep_attrs() into the protection
> 
> You can just say the previous behavior is buggy.

It depends on definitions. To me, it is just a nuisance.

> 
>> under wq_pool_mutex to ensure attrs-changing be sequentially.
>>
>> This patch is also a preparation patch for next patch which change
>> the API of apply_workqueue_attrs().
> ...
>> +static void apply_wqattrs_lock(void)
>> +{
>> +	/*
>> +	 * CPUs should stay stable across pwq creations and installations.
>> +	 * Pin CPUs, determine the target cpumask for each node and create
>> +	 * pwqs accordingly.
>> +	 */
>> +	get_online_cpus();
>> +	mutex_lock(&wq_pool_mutex);
>> +}
>> +
>> +static void apply_wqattrs_unlock(void)
>> +{
>> +	mutex_unlock(&wq_pool_mutex);
>> +	put_online_cpus();
>> +}
> 
> Separate out refactoring and extending locking coverage?
> 
> Thanks.
> 


  reply	other threads:[~2015-05-12  5:06 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-11  9:35 [PATCH 0/5] workqueue: cleanup for apply_workqueue_attrs() Lai Jiangshan
2015-05-11  9:35 ` [PATCH 1/5] workqueue: wq_pool_mutex protects the attrs-installation Lai Jiangshan
2015-05-11 12:23   ` Tejun Heo
2016-03-10 21:44   ` Steven Rostedt
2016-03-11 17:50     ` Tejun Heo
2016-07-11 20:50     ` Steven Rostedt
2016-07-12 15:09       ` Tejun Heo
2016-07-12 15:20         ` Tejun Heo
2016-07-12 15:23           ` Steven Rostedt
2015-05-11  9:35 ` [PATCH 2/5] workqueue: merge the similar code Lai Jiangshan
2015-05-11 14:31   ` Tejun Heo
2015-05-12  2:03     ` Lai Jiangshan
2015-05-12 13:16       ` Tejun Heo
2015-05-11  9:35 ` [PATCH 3/5] workqueue: ensure attrs-changing be sequentially Lai Jiangshan
2015-05-11 14:55   ` Tejun Heo
2015-05-12  5:09     ` Lai Jiangshan [this message]
2015-05-12 13:19       ` Tejun Heo
2015-05-11  9:35 ` [PATCH 4/5] workqueue: don't expose workqueue_attrs to users Lai Jiangshan
2015-05-11 14:59   ` Tejun Heo
2015-05-12  2:15     ` Lai Jiangshan
2015-05-12 13:22       ` Tejun Heo
2015-05-13  1:43         ` Lai Jiangshan
2015-05-13 13:52           ` Tejun Heo
2015-05-11  9:35 ` [PATCH 5/5] workqueue: remove no_numa from workqueue_attrs Lai Jiangshan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55518B1E.8010309@cn.fujitsu.com \
    --to=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.