mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jeff Moyer <jmoyer@redhat.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] blk-plug: don't flush nested plug lists
Date: Thu, 16 Apr 2015 11:47:10 -0400	[thread overview]
Message-ID: <x49egnkxegx.fsf@segfault.boston.devel.redhat.com> (raw)
In-Reply-To: <55256786.8000608@kernel.dk> (Jens Axboe's message of "Wed, 08 Apr 2015 11:38:14 -0600")

Jens Axboe <axboe@kernel.dk> writes:

> And agree with Ming, this can be cleaned up substantially. I'd also
> like to see some test results from the other end of the spectrum. Your
> posted cased is clearly based case (we missed tons of merging, now we
> don't), I'd like to see a normal case and a worst case result as well
> so we have an idea of what this would do to latencies.

I re-ran my tests (just sequential reads) to verify where the
performance benefit comes from.  Here are the results:

device|  vanilla   |    patch1      |   dio-noplug  |  noflush-nested
------+------------+----------------+---------------+-----------------
rssda | 701,684    |    1,168,527   |   1,342,177   |   1,297,612
      |     100%   |         +66%   |        +91%   |        +85%
vdb0  | 358,264    |      902,913   |     906,850   |     922,327
      |     100%   |        +152%   |       +153%   |       +157%

Patch1 refers to the first patch in this series, which fixes the merge
logic for single-queue blk-mq devices.  Each column after that includes
that first patch.  In dio-noplug, I removed the blk_plug from the
direct-io code path (so there is no nesting at all).  This is a control,
since it is what I expect the outcome of the noflush-nested column to
actually be.  Then, the noflush-nested column leaves the blk_plug in
place in the dio code, but includes the patch that prevents nested
blk_plug's from being flushed.  All numbers are the average of 5 runs.
With the exception of the vanilla run on rssda (the first run was
faster, causing the average to go up), the standard deviation is very
small.

As you can see, for the micron device (rssda) we get quite a bit of an
improvement from just fixing the plugging, but we could do quite a bit
better.  For the virtio-blk device, the follow-on patches don't
contribute very much to the overall performance.

So, I'm happy to push in just patch 1 at this time.  It is a bugfix,
after all, and could even be marked for stable.  Does that sound
reasonable?

Later, if time permits, I can look into refining patch 2, though I don't
have any firm plans to do that right now.

Thanks,
Jeff

  parent reply	other threads:[~2015-04-16 15:47 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-06 19:14 [PATCH 1/2] [v2] blk-mq: fix plugging in blk_sq_make_request Jeff Moyer
2015-04-06 19:14 ` [PATCH 2/2] blk-plug: don't flush nested plug lists Jeff Moyer
2015-04-07  9:19   ` Ming Lei
2015-04-07 14:47     ` Jeff Moyer
2015-04-08 17:38   ` Jens Axboe
2015-04-07 16:09     ` Shaohua Li
2015-04-08 17:56     ` Jeff Moyer
2015-04-16 15:47     ` Jeff Moyer [this message]
     [not found]   ` <x49wq1nrcoe.fsf_-_@segfault.boston.devel.redhat.com>
     [not found]     ` <20150408230203.GG15810@dastard>
2015-04-09  0:54       ` [PATCH 2/2][v2] " Dave Chinner

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=x49egnkxegx.fsf@segfault.boston.devel.redhat.com \
    --to=jmoyer@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=linux-kernel@vger.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

all inboxes | Powered by JetHome®