All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] dm: simplify request-based DM a bit and an RFC-like perf tweak
@ 2015-02-24 16:44 Mike Snitzer
  2015-02-24 16:44 ` [PATCH 1/4] dm: remove unnecessary wrapper around blk_lld_busy Mike Snitzer
                   ` (3 more replies)
  0 siblings, 4 replies; 21+ messages in thread
From: Mike Snitzer @ 2015-02-24 16:44 UTC (permalink / raw)
  To: dm-devel; +Cc: axboe, shivakrishna.merla, jmoyer

These changes were born out of me staring at the DM core code that
deals with request-based DM, in response to this thread:
https://www.redhat.com/archives/dm-devel/2015-February/msg00118.html

I've tested patches 1-3.  Patch 4 is more an RFC patch that fell out
of discussion I had with Jeff Moyer ("phro" below):

<phro> are you sure it isn't just i/o completion that's pulling more requests off the queue?
<phro> at least at the lower layer, that's what happens.  you get an interrupt for i/o completion, and in that contxt you submit any pending i/o
<snitm> in drivers/md/dm.c: dm_end_request -> rq_completed -> blk_run_queue_async
<snitm> so could very well be
<phro> ok, only difference is you kick it off to a work queue
<phro> for immediate dispatch
<snitm> right
<phro> so that makes sense.  as soon as an i/o is completed, a new one is issued
<snitm> could impose a delay on the running of the queue
<phro> right
<snitm> e.g. how dm.c:dm_request_fn does blk_delay_queue(q, HZ / 10);
<snitm> (which is what promotes merging in the ->lld_busy_fn returning true case)
<snitm> that _could_ be enough to slow things down slightly
<phro> it's worth a shot

Mike Snitzer (4):
  dm: remove unnecessary wrapper around blk_lld_busy
  dm: remove request-based DM queue's lld_busy_fn hook
  dm: remove request-based logic from make_request_fn wrapper
  dm: delay running the queue slightly during request completion

 block/blk-core.c              |  5 ++--
 drivers/md/dm-mpath.c         |  2 +-
 drivers/md/dm-table.c         | 14 -----------
 drivers/md/dm.c               | 54 +++++++++++--------------------------------
 drivers/md/dm.h               |  1 -
 include/linux/blkdev.h        |  2 --
 include/linux/device-mapper.h |  5 ----
 7 files changed, 17 insertions(+), 66 deletions(-)

-- 
1.9.3 (Apple Git-50)

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

end of thread, other threads:[~2015-02-26  0:28 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-24 16:44 [PATCH 0/4] dm: simplify request-based DM a bit and an RFC-like perf tweak Mike Snitzer
2015-02-24 16:44 ` [PATCH 1/4] dm: remove unnecessary wrapper around blk_lld_busy Mike Snitzer
2015-02-24 16:44 ` [PATCH 2/4] dm: remove request-based DM queue's lld_busy_fn hook Mike Snitzer
2015-02-24 16:44 ` [PATCH 3/4] dm: remove request-based logic from make_request_fn wrapper Mike Snitzer
2015-02-24 16:44 ` [RFC PATCH 4/4] dm: delay running the queue slightly during request completion Mike Snitzer
2015-02-24 16:51   ` Jens Axboe
2015-02-24 17:22     ` [RFC PATCH 4/4 v2] " Mike Snitzer
2015-02-24 17:52       ` Jens Axboe
2015-02-24 18:12         ` Mike Snitzer
2015-02-24 18:16           ` Jens Axboe
2015-02-24 18:32             ` Mike Snitzer
2015-02-25  0:56               ` awful request merge results while simulating high IOPS multipath Mike Snitzer
2015-02-25  4:14                 ` Keith Busch
2015-02-25 15:11                   ` Jens Axboe
2015-02-25 18:17                     ` Busch, Keith
2015-02-25 22:10                       ` Mike Snitzer
2015-02-25 23:57                         ` Keith Busch
2015-02-26  0:11                           ` Mike Snitzer
2015-02-26  0:28                             ` Keith Busch
2015-02-25  4:38                 ` FIXED! [was: awful request merge results while simulating high IOPS] multipath Mike Snitzer
2015-02-25  4:41                   ` Mike Snitzer

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.