Skip to content

scsi_dh: Make scsi_dh_activate asynchronous

Chandra Seetharaman dm-devel linux-scsi 1 version In review

Get series with b4
b4 am 20090930020811.11455.59565.sendpatchset@chandra-ubuntu

Versions newest first

  1. v1 Latest4 patches 16 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4scsi_dh: Change the scsidh_activate interface to be asynchronousdrivers/md/dm-mpath.c drivers/scsi/device_handler/scsi_dh.c drivers/scsi/device_handler/scsi_dh_alua.c +5 more+39 -203 replies
2/4scsi_dh: rdac handler: Make rdac hardware handler asyncdrivers/scsi/device_handler/scsi_dh_rdac.c+104 -132 replies
3/4scsi_dh: rdac handler: Make hp hardware handler asyncdrivers/scsi/device_handler/scsi_dh_hp_sw.c+54 -330 replies
4/4scsi_dh: rdac handler: Make alua hardware handler asyncdrivers/scsi/device_handler/scsi_dh_alua.c+73 -590 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/4] scsi_dh: Make scsi_dh_activate asynchronous

Hello All,

Currently, device handlers process path activation in series. This leads to a lot of time delay when more than 100 luns are involved. For example, with lsi rdac 100+ luns take about 12-15 minutes. This was found by Moger Babu of LSI.

This time delay can be avoided if we can do the activations asynchronously. By making scsi_dh_activate() async, we can give the device handlers an oppurtunity to decide on how to send the device activation down the wire to make the turn around time faster. They can send the commands asynchronously or send them in batches.

I brought up this issue on the mailing list
(http://marc.info/?l=linux-scsi&m=123888063818755&w=2) and provided a set of patch a loooong while back http://marc.info/?l=linux-scsi&m=124088712709821&w=2

This set of patches applies cleanly on 2.6.31 and I tested the rdac handler on the same.

Please review and provide comments.

This set of patched adds asynchronous support for rdac, hp, and alua handlers.

Didn't add async support for EMC for the following reasons:
- EMC handler is getting more hairy (when I try to move to _nowait())
- I do not know if EMC has a special command to group them (like rdac).
- I wasn't sure if EMC has this problem in the first place ( I did not get any response from EMC).
Can somebody from EMC comment, please.

Thanks & Regards,

chandra