[dm-devel] [RFC PATCH 0/7] dm-mpath: Do not clone requests

Hannes Reinecke hare at suse.de
Thu Jun 5 13:11:00 UTC 2014


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




More information about the dm-devel mailing list