From: Peter Zijlstra <peterz@infradead.org>
To: Paul Turner <pjt@google.com>
Cc: Mike Galbraith <bitbucket@online.de>,
Ingo Molnar <mingo@kernel.org>, Rik van Riel <riel@redhat.com>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [RFC][PATCH] sched: Avoid select_idle_sibling() for wake_affine(.sync=true)
Date: Thu, 26 Sep 2013 16:35:33 +0200 [thread overview]
Message-ID: <20130926143533.GE3657@laptop.programming.kicks-ass.net> (raw)
In-Reply-To: <CAPM31RKvhdDu_NmRd-hv7xBzM6qsS=Y0ey96GpLt36-oBrqdBg@mail.gmail.com>
On Thu, Sep 26, 2013 at 04:39:30AM -0700, Paul Turner wrote:
> It is my intuition that there are a few common objects with fairly
> polarized behavior: I.e. For condition variables and producer
> consumer queues, a wakeup strongly predicts blocking. Whereas for
> locks protecting objects, e.g. a Mutex, would be expected to have the
> opposite behavior.
Agreed; however none of those seem to have the property we're looking
for.
Even produces consumer queues on their own don't generate the
alternating patterns we're looking for with the SYNC hint.
We need a 'guarantee' that the waker is going to stop until the wakee is
done.
What we're looking for is the typical synchronous request-reply like
pattern -- and that doesn't seem to correlate to any one locking object.
Rather it is an inter-task relation; so task state does make sense in
finding them. We could for instance try and infer which task is
servicing requests; and then we know that requesting tasks will sleep
until reply.
next prev parent reply other threads:[~2013-09-26 14:35 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-25 7:53 [RFC][PATCH] sched: Avoid select_idle_sibling() for wake_affine(.sync=true) Peter Zijlstra
2013-09-25 8:56 ` Mike Galbraith
2013-09-26 2:50 ` Michael wang
2013-09-26 3:41 ` Mike Galbraith
2013-09-26 5:12 ` Michael wang
2013-09-26 5:34 ` Mike Galbraith
2013-09-26 6:15 ` Mike Galbraith
2013-09-26 6:32 ` Michael wang
2013-09-26 7:09 ` Mike Galbraith
2013-09-26 7:26 ` Michael wang
2013-09-26 9:58 ` Peter Zijlstra
2013-09-26 10:05 ` Peter Zijlstra
2013-09-26 10:55 ` Paul Turner
2013-09-26 11:16 ` Peter Zijlstra
2013-09-26 11:39 ` Paul Turner
2013-09-26 14:35 ` Peter Zijlstra [this message]
2013-09-26 15:43 ` Peter Zijlstra
2013-09-26 13:46 ` Mike Galbraith
2013-09-26 15:09 ` Michael wang
2013-09-26 15:44 ` Peter Zijlstra
2013-09-27 1:19 ` Michael wang
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=20130926143533.GE3657@laptop.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bitbucket@online.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=pjt@google.com \
--cc=riel@redhat.com \
/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