From: Jan Kara <jack@suse.cz>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>, Brian Foster <bfoster@redhat.com>,
linux-xfs@vger.kernel.org, Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
x86@kernel.org
Subject: Re: [PATCH for-4.14] xfs: fix AIM7 regression
Date: Tue, 7 Nov 2017 11:22:41 +0100 [thread overview]
Message-ID: <20171107102241.GE4359@quack2.suse.cz> (raw)
In-Reply-To: <20171019224431.GO4755@magnolia>
On Thu 19-10-17 15:44:31, Darrick J. Wong wrote:
> On Thu, Oct 19, 2017 at 03:14:07PM +0200, Christoph Hellwig wrote:
> > On Thu, Oct 19, 2017 at 07:38:48AM -0400, Brian Foster wrote:
> > > On Thu, Oct 19, 2017 at 09:47:05AM +0200, Christoph Hellwig wrote:
> > > > Apparently our current rwsem code doesn't like doing the trylock, then
> > > > lock for real scheme. So change our read/write methods to just do the
> > > > trylock for the RWF_NOWAIT case. This fixes a ~25% regression in
> > > > AIM7.
> > > >
> > >
> > > The code looks fine, but this seems really strange. If the trylock
> > > fails, then wouldn't the blocking lock have slept anyways if done
> > > initially? Is there any more background info available on this, or
> > > perhaps a theory on why there is such a significant regression..?
> >
> > No, unfortunately I don't have a theory, but I agree it is odd
> > behavior in the rwsem code.
>
> <shrug> I want to know a little more about why there's a performance hit
> in the down_read_trylock -> down_read case. Are we getting penalized
> for that? Is it some weird interaction with lockdep?
At least on x86, __down_read_trylock() is implemented very much differently
from __down_read(). In particular if there's heavy contention on the
semaphore from readers, __down_read_trylock() implementation seems to be
prone to going through cmpxchg loop several times which could explain
observed performance data. But I'm just guessing... Adding some x86 people
to CC just in case they have more to say.
Honza
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
prev parent reply other threads:[~2017-11-07 10:22 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-19 7:47 [PATCH for-4.14] xfs: fix AIM7 regression Christoph Hellwig
2017-10-19 11:38 ` Brian Foster
2017-10-19 13:14 ` Christoph Hellwig
2017-10-19 22:44 ` Darrick J. Wong
2017-10-20 6:55 ` Christoph Hellwig
2017-11-07 10:22 ` Jan Kara [this message]
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=20171107102241.GE4359@quack2.suse.cz \
--to=jack@suse.cz \
--cc=bfoster@redhat.com \
--cc=darrick.wong@oracle.com \
--cc=hch@lst.de \
--cc=linux-xfs@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=x86@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 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).