From: Tejun Heo <tj@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: tglx@linutronix.de, mingo@elte.hu, avi@redhat.com, efault@gmx.de,
rusty@rustcorp.com.au, linux-kernel@vger.kernel.org,
Gautham R Shenoy <ego@in.ibm.com>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH 4/7] sched: implement force_cpus_allowed()
Date: Tue, 08 Dec 2009 20:24:58 +0900 [thread overview]
Message-ID: <4B1E378A.5050101@kernel.org> (raw)
In-Reply-To: <1260268453.3935.1106.camel@laptop>
Hello,
On 12/08/2009 07:34 PM, Peter Zijlstra wrote:
> On Tue, 2009-12-08 at 18:12 +0900, Tejun Heo wrote:
>>> So its only needed in order to flush a workqueue from CPU_DOWN_PREPARE?
>>> And all you need it to place a new kthread on a !active cpu?
>>
>> Yes, that's all I need.
Let me augment the above sentence. Yes, that's all I need *during
CPU_DOWN*. During CPU_UP, I need to migrate back left running workers
which survived from the last CPU_DOWN. In the original patch, the
down path is worker_maybe_bind_and_lock() and the latter path is
trustee_unset_rogue().
> Then you don't need most of that patch, you don't need to touch the
> migration stuff since a new kthread isn't running.
>
> All you need to do is make a kthread_bind/set_cpus_allowed variant that
> checks against cpu_online_mask instead of cpu_active_mask.
kthread_bind() doesn't check against cpu_online_mask. Isn't
set_cpus_allowed() variant which checks against cpu_online_mask is
what's implemented by the patch (+ PF_THREAD_BOUND bypass)?
> It might even make sense to have kthread_bind() always check with
> cpu_online_mask as the kernel really ought to know what its doing
> anyway.
Oh... yeah, it was a bit strange that the function doesn't check
against cpu onliness but if that is removed what would be the point of
kthread_bind() when set_cpus_allowed() provides pretty much the same
capability?
> You also don't need to play trickery with PF_THREAD_BOUND, since a new
> kthread will not have that set.
Yeap, but when the cpu comes back online, those kthreads need to be
rebound to the cpu.
> In fact, your patch is against a tree that still has cpu_online_mask in
> all those places, so you wouldn't have needed any of that, confused.. ?!
To migrate back the workers from CPU_ONLINE callback.
Thanks.
--
tejun
next prev parent reply other threads:[~2009-12-08 11:24 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-02 3:56 [PATCHSET tip/sched/core] sched: concurrency managed workqueue related sched patches Tejun Heo
2009-12-02 3:56 ` [PATCH 1/7] sched: revert 498657a478c60be092208422fefa9c7b248729c2 Tejun Heo
2009-12-02 10:42 ` [tip:sched/core] sched: Revert 498657a478c60be092208422fefa9c7b248729c2 tip-bot for Tejun Heo
2009-12-02 3:56 ` [PATCH 2/7] sched: rename preempt_notifiers to sched_notifiers and refactor implementation Tejun Heo
2009-12-02 3:56 ` [PATCH 3/7] sched: refactor try_to_wake_up() Tejun Heo
2009-12-02 9:05 ` Mike Galbraith
2009-12-02 9:51 ` Tejun Heo
2009-12-02 10:10 ` Mike Galbraith
2009-12-02 10:14 ` Tejun Heo
2009-12-02 11:01 ` Peter Zijlstra
2009-12-03 6:11 ` [PATCH UDPATED " Tejun Heo
2009-12-02 3:56 ` [PATCH 4/7] sched: implement force_cpus_allowed() Tejun Heo
2009-12-04 10:40 ` Peter Zijlstra
2009-12-04 10:43 ` Peter Zijlstra
2009-12-07 4:34 ` Tejun Heo
2009-12-07 8:35 ` Peter Zijlstra
2009-12-07 10:34 ` Tejun Heo
2009-12-07 10:54 ` Peter Zijlstra
2009-12-07 11:07 ` Tejun Heo
2009-12-08 8:41 ` Tejun Heo
2009-12-08 9:02 ` Peter Zijlstra
2009-12-08 9:12 ` Tejun Heo
2009-12-08 10:34 ` Peter Zijlstra
2009-12-08 10:38 ` Peter Zijlstra
2009-12-08 11:26 ` Tejun Heo
2009-12-08 11:24 ` Tejun Heo [this message]
2009-12-08 11:48 ` Peter Zijlstra
2009-12-08 11:56 ` Tejun Heo
2009-12-08 12:10 ` Peter Zijlstra
2009-12-08 12:23 ` Tejun Heo
2009-12-08 13:35 ` Peter Zijlstra
2009-12-09 5:25 ` Tejun Heo
2009-12-09 7:41 ` Peter Zijlstra
2009-12-09 8:03 ` Tejun Heo
2009-12-02 3:56 ` [PATCH 5/7] sched: make sched_notifiers unconditional Tejun Heo
2009-12-02 3:56 ` [PATCH 6/7] sched: add wakeup/sleep sched_notifiers and allow NULL notifier ops Tejun Heo
2009-12-02 3:56 ` [PATCH 7/7] sched: implement try_to_wake_up_local() Tejun Heo
2009-12-03 6:13 ` [PATCH UPDATED " Tejun Heo
2009-12-04 10:47 ` Peter Zijlstra
2009-12-07 3:31 ` Tejun Heo
2009-12-04 10:44 ` [PATCH " Peter Zijlstra
2009-12-07 3:26 ` Tejun Heo
2009-12-07 8:50 ` Peter Zijlstra
2009-12-07 8:56 ` Peter Zijlstra
2009-12-07 10:27 ` Tejun Heo
2009-12-08 8:53 ` Peter Zijlstra
2009-12-08 9:16 ` Tejun Heo
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=4B1E378A.5050101@kernel.org \
--to=tj@kernel.org \
--cc=avi@redhat.com \
--cc=efault@gmx.de \
--cc=ego@in.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=rusty@rustcorp.com.au \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox