From: Nicholas Piggin <npiggin@gmail.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Boqun Feng <boqun.feng@gmail.com>, Andrew Hunter <ahh@google.com>,
maged michael <maged.michael@gmail.com>,
gromer <gromer@google.com>, Avi Kivity <avi@scylladb.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Palmer Dabbelt <palmer@dabbelt.com>
Subject: Re: [RFC PATCH v2] membarrier: expedited private command
Date: Sat, 29 Jul 2017 19:45:43 +1000 [thread overview]
Message-ID: <20170729194543.04c761d6@roar.ozlabs.ibm.com> (raw)
In-Reply-To: <20170729092333.GB6524@worktop.programming.kicks-ass.net>
On Sat, 29 Jul 2017 11:23:33 +0200
Peter Zijlstra <peterz@infradead.org> wrote:
> On Sat, Jul 29, 2017 at 11:58:40AM +1000, Nicholas Piggin wrote:
> > I haven't had time to read the thread and understand exactly why you need
> > this extra barrier, I'll do it next week. Thanks for cc'ing us on it.
>
> Bottom of here:
>
> https://lkml.kernel.org/r/20170727135610.jwjfvyuacqzj5e4u@hirez.programming.kicks-ass.net
>
> is probably the fastest way towards understanding the need for a barrier
> after rq->curr assignment.
>
> Any barrier after that assignment is good for us, but so far it looks
> like PPC doesn't (and PPC only afaict) provide any smp_mb() after that
> point.
Thanks, yeah that's relatively straightforward.
> > A smp_mb is pretty expensive on powerpc CPUs. Removing the sync from
> > switch_to increased thread switch performance by 2-3%. Putting it in
> > switch_mm may be a little less painful, but still we have to weigh it
> > against the benefit of this new functionality. Would that be a net win
> > for the average end-user? Seems unlikely.
> >
> > But we also don't want to lose sys_membarrier completely. Would it be too
> > painful to make MEMBARRIER_CMD_PRIVATE_EXPEDITED return error, or make it
> > fall back to a slower case if we decide not to implement it?
>
> One ugly thing we've thought of is tagging each mm that has used
> sys_membarrier() and only issue the smp_mb() for those. That way only
> those tasks that actually rely on the syscall get to pay the price.
The biggest hammer that puts everything on the syscall side I think would
be to lock each runqueue to while iterating over them, right?
That could be pretty expensive but it would be interesting to know how
bad that is for real apps... hmm, we might be able to restrict iteration
to mm_cpumask(current->mm), no?
next prev parent reply other threads:[~2017-07-29 9:46 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-27 21:13 [RFC PATCH v2] membarrier: expedited private command Mathieu Desnoyers
2017-07-27 22:13 ` Paul E. McKenney
2017-07-27 22:41 ` Mathieu Desnoyers
2017-07-27 22:57 ` Paul E. McKenney
2017-07-28 8:55 ` Peter Zijlstra
2017-07-28 11:10 ` Peter Zijlstra
2017-07-28 11:57 ` Peter Zijlstra
2017-07-28 15:38 ` Mathieu Desnoyers
2017-07-28 16:46 ` Peter Zijlstra
2017-07-28 17:06 ` Mathieu Desnoyers
2017-07-29 1:58 ` Nicholas Piggin
2017-07-29 9:23 ` Peter Zijlstra
2017-07-29 9:45 ` Nicholas Piggin [this message]
2017-07-29 9:48 ` Nicholas Piggin
2017-07-29 10:51 ` Peter Zijlstra
2017-07-31 19:31 ` Mathieu Desnoyers
2017-07-31 13:20 ` Michael Ellerman
2017-07-31 13:36 ` Peter Zijlstra
2017-08-01 0:35 ` Nicholas Piggin
2017-08-01 1:33 ` Mathieu Desnoyers
2017-08-01 2:00 ` Nicholas Piggin
2017-08-01 8:12 ` Peter Zijlstra
2017-08-01 9:57 ` Nicholas Piggin
2017-08-01 10:22 ` Peter Zijlstra
2017-08-01 10:32 ` Avi Kivity
2017-08-01 10:46 ` Peter Zijlstra
2017-08-01 10:39 ` Nicholas Piggin
2017-08-01 11:00 ` Peter Zijlstra
2017-08-01 11:54 ` Nicholas Piggin
2017-08-01 13:23 ` Paul E. McKenney
2017-08-01 14:16 ` Peter Zijlstra
2017-08-01 23:32 ` Paul E. McKenney
2017-08-02 0:45 ` Nicholas Piggin
2017-07-28 15:36 ` Mathieu Desnoyers
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=20170729194543.04c761d6@roar.ozlabs.ibm.com \
--to=npiggin@gmail.com \
--cc=ahh@google.com \
--cc=avi@scylladb.com \
--cc=benh@kernel.crashing.org \
--cc=boqun.feng@gmail.com \
--cc=gromer@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maged.michael@gmail.com \
--cc=mathieu.desnoyers@efficios.com \
--cc=mpe@ellerman.id.au \
--cc=palmer@dabbelt.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.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;
as well as URLs for NNTP newsgroup(s).