On Fri, Jun 11 2021 at 4:25P -0400, mwilck@xxxxxxxx <mwilck@xxxxxxxx> wrote: > From: Martin Wilck <mwilck@xxxxxxxx> > > Hello Mike, > > here is v3 of my attempt to add retry logic to SG_IO on dm-multipath devices. > Sorry that it took such a long time. > > Regards > Martin > > Changes v2->v3: > > - un-inlined scsi_result_to_blk_status again, and move the helper > __scsi_result_to_blk_status to block/scsi_ioctl.c instead > (Bart v. Assche) > - open-coded the status/msg/host/driver-byte -> result conversion > where the standard SCSI helpers aren't usable (Bart v. Assche) This work offers a proof-of-concept but it needs further refinement for sure. The proposed open-coded SCSI code (in patch 2's drivers/md/dm-scsi_ioctl.c) is well beyond what I'm willing to take in DM. If this type of functionality is still needed (for kvm's SCSI passthru snafu) then more work is needed to negotiate proper interfaces with the SCSI subsystem (added linux-scsi to cc, odd they weren't engaged on this). Does it make sense to extend the SCSI device handler interface to add the required enablement? (I think it'd have to if this line of work is to ultimately get upstream). Mike > Changes v1->v2: > > - applied modifications from Mike Snitzer > - moved SG_IO dependent code to a separate file, no scsi includes in > dm.c any more > - made the new code depend on a configuration option > - separated out scsi changes, made scsi_result_to_blk_status() > inline to avoid dependency of dm_mod from scsi_mod (Paolo Bonzini) > > Martin Wilck (2): > scsi: export __scsi_result_to_blk_status() in scsi_ioctl.c > dm: add CONFIG_DM_MULTIPATH_SG_IO - failover for SG_IO on dm-multipath > > block/scsi_ioctl.c | 52 ++++++++++++++- > drivers/md/Kconfig | 11 ++++ > drivers/md/Makefile | 4 ++ > drivers/md/dm-core.h | 5 ++ > drivers/md/dm-rq.h | 11 ++++ > drivers/md/dm-scsi_ioctl.c | 127 +++++++++++++++++++++++++++++++++++++ > drivers/md/dm.c | 20 +++++- > drivers/scsi/scsi_lib.c | 29 +-------- > include/linux/blkdev.h | 3 + > 9 files changed, 229 insertions(+), 33 deletions(-) > create mode 100644 drivers/md/dm-scsi_ioctl.c > > -- > 2.31.1 > -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel