From: Dave Chinner <david@fromorbit.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Waiman Long <Waiman.Long@hp.com>, Ingo Molnar <mingo@kernel.org>
Subject: Re: [4.2, Regression] Queued spinlocks cause major XFS performance regression
Date: Fri, 4 Sep 2015 18:29:54 +1000 [thread overview]
Message-ID: <20150904082954.GB3902@dastard> (raw)
In-Reply-To: <20150904071143.GZ3902@dastard>
On Fri, Sep 04, 2015 at 05:11:43PM +1000, Dave Chinner wrote:
> On Thu, Sep 03, 2015 at 11:39:21PM -0700, Linus Torvalds wrote:
> > There doesn't seem to be anything even remotely strange going on in that area.
> >
> > Is this a PARAVIRT configuration? There were issues with PV
> > interaction at some point. If it is PV, and you don't actually use PV,
> > can you test with PV support disabled?
>
> $ grep PARAVIRT .config
> CONFIG_PARAVIRT=y
> # CONFIG_PARAVIRT_DEBUG is not set
> # CONFIG_PARAVIRT_SPINLOCKS is not set
> CONFIG_PARAVIRT_TIME_ACCOUNTING=y
> CONFIG_PARAVIRT_CLOCK=y
> $
>
> I'll retest with CONFIG_PARAVIRT=n....
$ grep PARAVIRT .config
# CONFIG_PARAVIRT is not set
$
FSUse% Count Size Files/sec App Overhead
0 1600000 0 123407.7 9202289
0 3200000 0 97271.9 9187905
0 4800000 0 101010.3 11246527
....
So, no, that doesn't affect the queued spinlock performance at all.
> > Also, if you look at the instruction-level profile for
> > queued_spin_lock_slowpath itself, does anything stand out? For
> > example, I note that the for-loop with the atomic_cmpxchg() call in it
> > doesn't ever do a cpu_relax(). It doesn't look like that should
> > normally loop, but obviously that function also shouldn't normally use
> > 2/3rds of the cpu, so.. Maybe some part of queued_spin_lock_slowpath()
> > stands out as "it's spending 99% of the time in _that_ particular
> > part, and it gives some clue what goes wrong.
>
> I'll have a look when the current tests on that machine have
> finished running.
¿ Disassembly of section load2:
¿
¿ ffffffff810e0f30 <load2+0xe0f30>:
0.00 ¿ nop
¿ push %rbp
0.00 ¿ mov %rsp,%rbp
0.00 ¿ xchg %ax,%ax
¿ xor %eax,%eax
0.00 ¿ mov $0x1,%edx
¿ lock cmpxchg %edx,(%rdi)
0.33 ¿ xor %ecx,%ecx
¿ test %eax,%eax
¿ ¿ je 28
0.02 ¿ 1c: pause
4.45 ¿ mov %ecx,%eax
0.00 ¿ lock cmpxchg %edx,(%rdi)
95.18 ¿ test %eax,%eax
¿ ¿ jne 1c
0.01 ¿ 28: pop %rbp
0.01 ¿ ¿ retq
.....
It looks like it's spending all it's time looping around the cmpxchg.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2015-09-04 8:30 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-04 5:48 [4.2, Regression] Queued spinlocks cause major XFS performance regression Dave Chinner
2015-09-04 6:39 ` Linus Torvalds
2015-09-04 7:11 ` Dave Chinner
2015-09-04 7:31 ` Juergen Gross
2015-09-04 7:55 ` Peter Zijlstra
2015-09-04 8:29 ` Dave Chinner [this message]
2015-09-04 15:05 ` Linus Torvalds
2015-09-04 15:14 ` Peter Zijlstra
2015-09-04 15:21 ` Linus Torvalds
2015-09-04 15:30 ` Peter Zijlstra
2015-09-04 15:54 ` Peter Zijlstra
2015-09-10 2:06 ` Waiman Long
2015-09-04 15:58 ` Linus Torvalds
2015-09-05 17:45 ` Peter Zijlstra
2015-09-04 15:25 ` Peter Zijlstra
2015-09-06 23:32 ` Dave Chinner
2015-09-07 0:05 ` Davidlohr Bueso
2015-09-07 6:57 ` Peter Zijlstra
2015-09-07 20:45 ` Linus Torvalds
2015-09-08 6:37 ` Davidlohr Bueso
2015-09-08 10:05 ` Peter Zijlstra
2015-09-08 17:45 ` Linus Torvalds
2015-09-13 10:55 ` [tip:locking/core] locking/qspinlock/x86: Fix performance regression under unaccelerated VMs tip-bot for Peter Zijlstra
2015-09-04 7:39 ` [4.2, Regression] Queued spinlocks cause major XFS performance regression Peter Zijlstra
2015-09-04 8:12 ` Dave Chinner
2015-09-04 11:32 ` Peter Zijlstra
2015-09-04 22:03 ` Dave Chinner
2015-09-06 23:47 ` Dave Chinner
2015-09-10 2:09 ` Waiman Long
[not found] ` <CAC=cRTOraeOeu3Z8C1qx6w=GMSzD_4VevrEzn0mMhrqy=7n3wQ@mail.gmail.com>
[not found] ` <56094F05.4090809@hpe.com>
2015-09-29 0:47 ` huang ying
2015-09-29 2:57 ` Waiman Long
2015-09-10 2:01 ` Waiman Long
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=20150904082954.GB3902@dastard \
--to=david@fromorbit.com \
--cc=Waiman.Long@hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--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 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.