All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: linux-kernel@vger.kernel.org, tangchen <tangchen@cn.fujitsu.com>,
	Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH 02/12] workqueue: disallow set_cpus_allowed_ptr() from work item
Date: Wed, 26 Sep 2012 11:12:30 -0700	[thread overview]
Message-ID: <20120926181230.GC12544@google.com> (raw)
In-Reply-To: <1348680043-5077-3-git-send-email-laijs@cn.fujitsu.com>

On Thu, Sep 27, 2012 at 01:20:33AM +0800, Lai Jiangshan wrote:
> workers depend on local-wake-up, if a work function change its CPU, it will
> corrupt workqueue, disallow this behavior.
> 
> When set_cpus_allowed_ptr() is called from workqueue.c in worker_thread(),
> we clear the PF_WQ_WORKER before set_cpus_allowed_ptr() and set it back
> after. (rescuer thread has no PF_WQ_WORKER, skip this behavior)
> 
> It prevents other/future BUGs like https://bugzilla.kernel.org/show_bug.cgi?id=47301.

Hmmm... maybe.  We better clear up PF_THREAD_BOUND semantics first
tho.

I think the two possible choices are,

* Don't allow set_cpus_allowed_ptr() at all and make the caller
  responsible for turning it off if it explicitly wants to change
  cpus_allowed.

* Don't allow changing affinity from userland.

Peter, Thomas?

-- 
tejun

  reply	other threads:[~2012-09-26 18:12 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-26 17:20 [PATCH 00/12] workqueue: simple cleanups Lai Jiangshan
2012-09-26 17:20 ` [PATCH 01/12] workqueue: add WORKER_RESCUER Lai Jiangshan
2012-09-26 18:07   ` Tejun Heo
2012-09-28 10:11     ` Lai Jiangshan
2012-09-26 17:20 ` [PATCH 02/12] workqueue: disallow set_cpus_allowed_ptr() from work item Lai Jiangshan
2012-09-26 18:12   ` Tejun Heo [this message]
2012-09-26 17:20 ` [PATCH 03/12] workqueue: remove WORKER_PREP from rescuer Lai Jiangshan
2012-09-26 18:24   ` Tejun Heo
2012-09-28 10:04     ` Lai Jiangshan
2012-09-30  7:39       ` Tejun Heo
2012-09-26 17:20 ` [PATCH 04/12] workqueue: simplify is_chained_work() Lai Jiangshan
2012-09-26 18:28   ` Tejun Heo
2012-09-28  9:52     ` Lai Jiangshan
2012-09-30  7:32       ` Tejun Heo
2012-09-26 17:20 ` [PATCH 05/12] workqueue: don't wake up other workers in rescuer Lai Jiangshan
2012-09-26 18:34   ` Tejun Heo
2012-09-28 10:18     ` Lai Jiangshan
2012-09-26 17:20 ` [PATCH 06/12] workqueue: destroy_worker() can only destory idle worker not just created worker Lai Jiangshan
2012-09-26 18:35   ` Tejun Heo
2012-09-26 17:20 ` [PATCH 07/12] workqueue: remove WORKER_STARTED Lai Jiangshan
2012-09-26 18:36   ` Tejun Heo
2012-09-28  9:52     ` Lai Jiangshan
2012-09-26 17:20 ` [PATCH 08/12] workqueue: fix comments of insert_work() Lai Jiangshan
2012-09-26 17:20 ` [PATCH 09/12] workqueue: declare system_highpri_wq Lai Jiangshan
2012-09-26 17:20 ` [PATCH 10/12] cpu-hotplug.txt: fix comments of work_on_cpu() Lai Jiangshan
2012-09-26 17:20 ` [RFC PATCH 11/12] workqueue: add WQ_CPU_INTENSIVE to system_long_wq Lai Jiangshan
2012-09-26 18:38   ` Tejun Heo
2012-09-28  8:06     ` Lai Jiangshan
2012-09-30  7:22       ` Tejun Heo
2012-09-26 17:20 ` [PATCH 12/12] workqueue: avoid work_on_cpu() to interfere system_wq 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=20120926181230.GC12544@google.com \
    --to=tj@kernel.org \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tangchen@cn.fujitsu.com \
    --cc=tglx@linutronix.de \
    /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.