All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/7] dm-mpath: Do not clone requests
@ 2014-06-05 13:11 Hannes Reinecke
  2014-06-05 13:11 ` [PATCH 1/7] dm: use dm_rq_target_io as argument for dm_done() Hannes Reinecke
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: Hannes Reinecke @ 2014-06-05 13:11 UTC (permalink / raw)
  To: Alasdair Kergon
  Cc: Jun'ichi Nomura, Christoph Hellwig, dm-devel, Mike Snitzer

Hi all,

this is a patchset I made some time ago to remove the
'insane request cloning' from dm-multipath.

Currently, multipath clones each request + attached bios before sending
them down to the underlying path. This not only increases the memory
requirements, but also leads to quite some interesting interactions
with the block layer.

This RFC pursues an alternative approach, leaving the request as-is
and just modify the rq_end_io handler to call the correct end_io function.
As the rq_end_io is called _before_ any bio_endio handler there is no
need to clone the bios nor the bio_endio handler.

In theory. This is just a test balloon to get some response.
I never got around to actually _test_ it. You have been warned.

Hannes Reinecke (7):
  dm: use dm_rq_target_io as argument for dm_done()
  dm: remove handling of DM_ENDIO_INCOMPLETE
  dm: move rq_completed() out of enclosing functions
  dm: open-code dm_kill_unmapped_request()
  dm: move free_rq_clone() out of dm_unprep_request()
  dm: open-code free_rq_clone()
  dm: do not clone requests

 drivers/md/dm.c               | 337 +++++++++---------------------------------
 include/linux/device-mapper.h |   1 -
 2 files changed, 73 insertions(+), 265 deletions(-)

-- 
1.7.12.4

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

end of thread, other threads:[~2014-06-06  5:25 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-05 13:11 [RFC PATCH 0/7] dm-mpath: Do not clone requests Hannes Reinecke
2014-06-05 13:11 ` [PATCH 1/7] dm: use dm_rq_target_io as argument for dm_done() Hannes Reinecke
2014-06-05 13:11 ` [PATCH 2/7] dm: remove handling of DM_ENDIO_INCOMPLETE Hannes Reinecke
2014-06-05 13:11 ` [PATCH 3/7] dm: move rq_completed() out of enclosing functions Hannes Reinecke
2014-06-05 13:11 ` [PATCH 4/7] dm: open-code dm_kill_unmapped_request() Hannes Reinecke
2014-06-05 13:11 ` [PATCH 5/7] dm: move free_rq_clone() out of dm_unprep_request() Hannes Reinecke
2014-06-05 13:11 ` [PATCH 6/7] dm: open-code free_rq_clone() Hannes Reinecke
2014-06-05 13:11 ` [PATCH 7/7] dm: do not clone requests Hannes Reinecke
2014-06-05 13:36 ` [RFC PATCH 0/7] dm-mpath: Do " Christoph Hellwig
2014-06-05 13:55   ` Hannes Reinecke
2014-06-05 14:44     ` Christoph Hellwig
2014-06-06  5:25       ` Junichi Nomura
2014-06-05 14:01   ` Mike Snitzer
2014-06-05 14:40     ` Christoph Hellwig

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.