linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@fb.com>
To: <axboe@kernel.dk>, <linux-kernel@vger.kernel.org>,
	<linux-block@vger.kernel.org>
Cc: <hch@lst.de>
Subject: [PATCHSET v2] block: IO polling improvements
Date: Thu, 3 Nov 2016 13:45:02 -0600	[thread overview]
Message-ID: <1478202307-1947-1-git-send-email-axboe@fb.com> (raw)

Fixed a few bugs in this, and addressed some review comments. Patches
are against my 4.10 block branch, for-4.10/block.

Some performance results, running random reads against a fast device,
using either IRQ driven completions, classic polled, or the new hybrid
polled:

Method		IOPS		CPU%		IOPS/CPU%
=========================================================
IRQ		476K		48.45%		 9843
Poll		897K		99.9%		 8982
Hybrid		836K		68.1%		12273

Classic polling is still a bit faster, but is uses a lot more CPU. The
rightmost column is an efficiency metric, and with the new hybrid
scheme, we're both faster and more efficient than IRQ driven. We should
be able to close the speed gap as well, so you can have your cake and
eat it too.

I've adjusted the default, so that classic polling is the default poll
method. To enable hybrid polling for a device, you would do:

# echo 0 > /sys/block/<dev>/queue/io_poll_delay

Also see the last patch for the other values this can be set to.

             reply	other threads:[~2016-11-03 19:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-03 19:45 Jens Axboe [this message]
2016-11-03 19:45 ` [PATCH 1/5] block: fast-path for small and simple direct I/O requests Jens Axboe
2016-11-03 19:45 ` [PATCH 2/5] block: add scalable completion tracking of requests Jens Axboe
2016-11-03 19:45 ` [PATCH 3/5] block: move poll code to blk-mq Jens Axboe
2016-11-04 14:44   ` Christoph Hellwig
2016-11-04 15:30     ` Jens Axboe
2016-11-03 19:45 ` [PATCH 4/5] blk-mq: implement hybrid poll mode for sync O_DIRECT Jens Axboe
2016-11-03 19:45 ` [PATCH 5/5] blk-mq: make the polling code adaptive Jens Axboe
2016-11-07 15:28 [PATCHSET v2] block: IO polling improvements Stephen Bates
2016-11-07 15:29 ` Jens Axboe

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=1478202307-1947-1-git-send-email-axboe@fb.com \
    --to=axboe@fb.com \
    --cc=axboe@kernel.dk \
    --cc=hch@lst.de \
    --cc=linux-block@vger.kernel.org \
    --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;
as well as URLs for NNTP newsgroup(s).