[dm-devel] SCSI Hardware Handler and slow failover with large number of LUNS
Mike Christie
michaelc at cs.wisc.edu
Mon Apr 6 15:43:45 UTC 2009
Chandra Seetharaman wrote:
> Hello All,
>
> During testing with the latest SCSI DH Handler on a rdac storage, Babu
> found that the failover time with 100+ luns takes about 15 minutes,
> which is not good.
>
> We found that the problem is due to the fact that we serialize activate
> in dm on the work queue.
>
I thought we talked about this during the review?
> We can solve the problem in rdac handler in 2 ways
> 1. batch up the activates (mode_selects) and send few of them.
> 2. Do mode selects in async mode.
I think most of the ugliness in the original async mode was due to
trying to use the REQ_BLOCK* path. With the scsi_dh_activate path, it
should now be easier because in the send path we do not have to worry
about queue locks being held and context.
I think we could just use blk_execute_rq_nowait to send the IO. Then we
would have a workqueue/thread per something (maybe per dh module I
thought), that would be queued/notified when the IO completed. The
thread could then process the IO and handle the next stage if needed.
Why use the thread you might wonder? I think it fixes another issue with
the original async mode, and makes it easier if the scsi_dh module has
to send more IO. When using the thread it would not have to worry about
the queue_lock being held in the IO completion path and does not have to
worry about being run from more restrictive contexts.
>
> Just wondering if anybody had seen the same problem in other storages
> (EMC, HP and Alua).
They should all have the same problem.
>
> Please share your experiences, so we can come up with a solution that
> works for all hardware handlers.
>
> regards,
>
> chandra
>
> --
> dm-devel mailing list
> dm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
More information about the dm-devel
mailing list