public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/9] block: per-distpatch_queue flush machinery
@ 2014-09-12 14:47 Ming Lei
  2014-09-12 14:47 ` [PATCH v2 1/9] blk-mq: allocate flush_rq in blk_mq_init_flush() Ming Lei
                   ` (8 more replies)
  0 siblings, 9 replies; 16+ messages in thread
From: Ming Lei @ 2014-09-12 14:47 UTC (permalink / raw)
  To: Jens Axboe, linux-kernel; +Cc: Christoph Hellwig

Hi,

As recent discussion, especially suggested by Christoph, this patchset
implements per-distpatch_queue flush machinery, so that:

	- current init_request and exit_request callbacks can
	cover flush request too, then the buggy copying way of
	initializing flush request's pdu can be fixed

	- flushing performance gets improved in case of multi hw-queue

About 70% throughput improvement is observed in sync write/randwrite
over multi dispatch-queue virtio-blk, see details in commit log
of patch 9/9.

This patchset can be pulled from below tree too:

        git://kernel.ubuntu.com/ming/linux.git v3.17-block-dev_v2

V2:
	- refactor blk_mq_init_hw_queues() and its pair, also it is a fix
	on failure path, so that conversion to per-queue flush becomes simple.
	- allocate/initialize flush queue in blk_mq_init_hw_queues()
	- add sync write tests on virtio-blk which is backed by SSD image

V1:
        - commit log typo fix
        - introduce blk_alloc_flush_queue() and its pair earlier, so
        that patch 5 and 8 become easier for review


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2014-09-12 15:59 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-12 14:47 [PATCH v2 0/9] block: per-distpatch_queue flush machinery Ming Lei
2014-09-12 14:47 ` [PATCH v2 1/9] blk-mq: allocate flush_rq in blk_mq_init_flush() Ming Lei
2014-09-12 14:47 ` [PATCH v2 2/9] block: introduce blk_init_flush and its pair Ming Lei
2014-09-12 15:18   ` Jens Axboe
2014-09-12 15:41     ` Ming Lei
2014-09-12 15:45       ` Jens Axboe
2014-09-12 15:59         ` Ming Lei
2014-09-12 14:47 ` [PATCH v2 3/9] block: move flush initialization to blk_flush_init Ming Lei
2014-09-12 14:47 ` [PATCH v2 4/9] block: avoid to use q->flush_rq directly Ming Lei
2014-09-12 14:47 ` [PATCH v2 5/9] block: introduce blk_flush_queue to drive flush machinery Ming Lei
2014-09-12 14:47 ` [PATCH v2 6/9] block: flush: avoid to figure out flush queue unnecessarily Ming Lei
2014-09-12 14:47 ` [PATCH v2 7/9] block: introduce 'blk_mq_ctx' parameter to blk_get_flush_queue Ming Lei
2014-09-12 14:47 ` [PATCH v2 8/9] blk-mq: handle failure path for initializing hctx Ming Lei
2014-09-12 15:19   ` Jens Axboe
2014-09-12 14:47 ` [PATCH v2 9/9] blk-mq: support per-distpatch_queue flush machinery Ming Lei
2014-09-12 15:20   ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox