From: john stultz <johnstul@us.ibm.com>
To: tytso@mit.edu
Cc: linux-ext4@vger.kernel.org, Mingming Cao <cmm@us.ibm.com>,
keith maanthey <kmannth@us.ibm.com>,
Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
Darren Hart <dvhltc@us.ibm.com>
Subject: Re: ext4 dbench performance with CONFIG_PREEMPT_RT
Date: Mon, 12 Apr 2010 20:52:57 -0700 [thread overview]
Message-ID: <1271130777.3469.18.camel@localhost.localdomain> (raw)
In-Reply-To: <20100408211054.GB1849@thunk.org>
On Thu, 2010-04-08 at 17:10 -0400, tytso@mit.edu wrote:
> > Any thoughts for ways to rework the state_lock in start_this_handle?
> > (Now that its at the top of the contention logs? :)
>
> That's going to be much harder. We're going to have to take
> j_state_lock at some point inside start_this_handle. We might be able
> to decrease the amount of code which is run while the spinlock is
> taken, but I very much doubt it's possible to eliminate that spinlock
> entirely.
>
> Do you have detailed lockstat information showing the hold-time and
> wait-time of j_lock_stat (especially in start_this_handle)?
Hey Ted,
Sorry this took so long. I've been using a fairly large pile of patches
in my testing on top of -rt, and since with -rt lockstat is less useful
(you don't get any of the contention data for mutexes, and the contended
spinlocks are always the internal rtmutex locks), I tried to regenerate
the data on something closer to plain vanilla.
So I ran dbench with 2.6.33, 2.6.33 + Nick Piggin's VFS scalability
patches, and 2.6.33 + Nick's patches + your state-lock patch on an 8 cpu
system.
Here's the chart of the performance difference:
http://sr71.net/~jstultz/dbench-scalability/graphs/2.6.33-ext4-state-lock/2.6.33_ext4-state-lock.png
Here's the perf log output:
http://sr71.net/~jstultz/dbench-scalability/perflogs/2.6.33-ext4-state-lock/
And finally, as requested, here's the lockstat data:
http://sr71.net/~jstultz/dbench-scalability/lockstat/2.6.33-ext4-state-lock/
Now, again, because the -rt kernel amplifies the contention cost, the
data above doesn't show as much pain at only 8 cpus as we see with -rt.
However, the contention does show up, and your patch helps.
In fact, with your patch, I'm not seeing any major contention in the
perf logs at 8 cpus. Although the lockstat logs still show:
t_handle_lock contention in start_This_handle/jbd2_journal_stop
- Likely the j_stat_lock was previously serializing this
j_state_lock contention in start_this_handle
- Expected
j_revoke_lock contention in find_revoke_record
- Also observed by Tim Chen
Let me know if there's any other data you'd like to see.
thanks
-john
next prev parent reply other threads:[~2010-04-13 3:53 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-07 23:21 ext4 dbench performance with CONFIG_PREEMPT_RT john stultz
2010-04-08 3:46 ` tytso
2010-04-08 10:18 ` Theodore Tso
2010-04-08 20:41 ` john stultz
2010-04-08 21:10 ` tytso
2010-04-13 3:52 ` john stultz [this message]
2010-04-14 3:04 ` john stultz
2010-04-08 22:37 ` Mingming Cao
2010-04-12 19:46 ` Jan Kara
2010-04-13 14:52 ` tytso
2010-04-13 16:25 ` Darren Hart
2010-06-02 22:35 ` j_state_lock patch data (was: Re: ext4 dbench performance with CONFIG_PREEMPT_RT) Eric Whitney
2010-04-09 15:49 ` ext4 dbench performance with CONFIG_PREEMPT_RT Andi Kleen
2010-04-09 23:33 ` tytso
2010-04-09 23:48 ` Chen, Tim C
2010-04-09 23:57 ` john stultz
2010-04-10 11:58 ` tytso
2010-04-12 19:54 ` Chen, Tim C
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=1271130777.3469.18.camel@localhost.localdomain \
--to=johnstul@us.ibm.com \
--cc=cmm@us.ibm.com \
--cc=dvhltc@us.ibm.com \
--cc=kmannth@us.ibm.com \
--cc=linux-ext4@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
--cc=tytso@mit.edu \
/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.