From: Tejun Heo <tj@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Shaohua Li <shaohua.li@intel.com>, Jens Axboe <axboe@kernel.dk>,
Vivek Goyal <vgoyal@redhat.com>,
lkml <linux-kernel@vger.kernel.org>,
Knut Petersen <Knut_Petersen@t-online.de>,
mroos@linux.ee
Subject: Re: [PATCH] block: strip out locking optimization in put_io_context()
Date: Wed, 8 Feb 2012 08:49:20 -0800 [thread overview]
Message-ID: <20120208164920.GB19392@google.com> (raw)
In-Reply-To: <CA+55aFy8ym1KSFv753wGrYn8qG5eK6YOy_nOCpYiqPjoLJwysg@mail.gmail.com>
Hello, Linus.
On Wed, Feb 08, 2012 at 08:34:53AM -0800, Linus Torvalds wrote:
> On Wed, Feb 8, 2012 at 8:29 AM, Tejun Heo <tj@kernel.org> wrote:
> >
> > Can you please try the following one? Thanks a lot!
>
> If you can use it as a rwlock, why can't you do it with RCU?
The original locking scheme was using RCU which was very fragile and
broken on corner cases. The locking restructuring was aimed to make
things simpler. While the double locking isn't trivial, it's much
easier to grasp and get right than RCU. We might have to revive RCU
if the regression can't be tackled otherwise and it probably is
possible to do it simpler. Let's see.
> Usually rwlocks are a bad idea. They tend to be more expensive than
> spinlocks, and the extra parallelism is almost never noticeable
> (except as "more cacheline bounces") for something that is appropriate
> for a non-sleeping lock.
>
> There's a *very* few situations where rwlock is the right thing, but
> it really almost always is a horribly bad idea.
I'm still a bit lost on where the regression is coming from and
*suspecting* that queue_lock contention is making the reverse locking
behave much worse than expected, so I mostly wanted to take that out
and see what happens. rwlock might increase locking overhead per try
but it avoids unlock/lock dancing. I'll try to reproduce the
regression in a few days and do better analysis.
Thanks.
--
tejun
next prev parent reply other threads:[~2012-02-08 16:49 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-06 7:50 [patch]block: fix ioc locking warning Shaohua Li
2012-02-06 7:55 ` Jens Axboe
2012-02-06 15:12 ` Vivek Goyal
2012-02-06 16:09 ` Jens Axboe
2012-02-06 16:37 ` Vivek Goyal
2012-02-06 16:44 ` Tejun Heo
2012-02-06 16:58 ` Linus Torvalds
2012-02-06 17:27 ` Tejun Heo
2012-02-06 20:16 ` Jens Axboe
2012-02-06 21:54 ` [PATCH] block: strip out locking optimization in put_io_context() Tejun Heo
2012-02-07 6:49 ` Jens Axboe
2012-02-07 16:22 ` Tejun Heo
2012-02-07 16:28 ` Jens Axboe
2012-02-07 16:33 ` Linus Torvalds
2012-02-07 16:47 ` Tejun Heo
2012-02-07 17:17 ` Tejun Heo
2012-02-08 0:19 ` Shaohua Li
2012-02-08 8:29 ` Shaohua Li
2012-02-08 16:29 ` Tejun Heo
2012-02-08 16:34 ` Linus Torvalds
2012-02-08 16:49 ` Tejun Heo [this message]
2012-02-08 16:56 ` Tejun Heo
2012-02-08 17:23 ` Tejun Heo
2012-02-09 6:22 ` Shaohua Li
2012-02-09 17:59 ` Tejun Heo
2012-02-09 18:07 ` Linus Torvalds
2012-02-09 19:24 ` Tejun Heo
2012-02-09 23:48 ` Tejun Heo
2012-02-10 5:14 ` Shaohua Li
2012-02-10 8:48 ` Shaohua Li
2012-02-11 2:17 ` Tejun Heo
2012-02-11 11:35 ` Jens Axboe
2012-02-13 1:34 ` Shaohua Li
2012-02-13 20:49 ` Tejun Heo
2012-02-14 2:36 ` Shaohua Li
2012-02-14 16:39 ` Tejun Heo
2012-02-10 3:09 ` Shaohua Li
2012-02-07 23:00 ` [PATCH] block: fix lockdep warning on io_context release put_io_context() Tejun Heo
2012-02-06 20:36 ` [patch]block: fix ioc locking warning Tejun Heo
2012-02-07 0:31 ` Shaohua Li
2012-02-07 0:39 ` Tejun Heo
2012-02-07 0:43 ` Shaohua Li
2012-02-07 0:59 ` Tejun Heo
2012-02-07 1:10 ` Shaohua Li
2012-02-07 1:33 ` Shaohua Li
2012-02-07 5:22 ` Shaohua Li
2012-02-07 22:34 ` Linus Torvalds
2012-02-06 16:22 ` Tejun Heo
2012-02-08 18:07 ` walt
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=20120208164920.GB19392@google.com \
--to=tj@kernel.org \
--cc=Knut_Petersen@t-online.de \
--cc=axboe@kernel.dk \
--cc=linux-kernel@vger.kernel.org \
--cc=mroos@linux.ee \
--cc=shaohua.li@intel.com \
--cc=torvalds@linux-foundation.org \
--cc=vgoyal@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;
as well as URLs for NNTP newsgroup(s).