[dm-devel] [RFC PATCH v2] dm mpath: add a queue_if_no_path timeout
Junichi Nomura
j-nomura at ce.jp.nec.com
Fri Nov 1 01:23:31 UTC 2013
On 11/01/13 02:17, Frank Mayhar wrote:
> On Thu, 2013-10-31 at 14:31 +0000, Alasdair G Kergon wrote:
>> (And also remember to test table swap/push back.)
>
> That brings up something I wanted to ask. I've dug through the code and
> this particular thing isn't clear to me. So how does it handle the
> queued I/Os when switching tables? I see nothing in the table_load()
> path that would deal with this. I'm guessing that the requests are
> pushed back to the block layer and are later resubmitted and requeued on
> the new multipath queue, but I don't see how that works.
>
> Code references would be very welcome.
Relevant piece of codes is:
- multipath_presuspend() temporarily disables "queue_if_no_path"
- during the suspend process, __must_push_back() catches (otherwise
failing) requests and requeues them back to the block layer queue
- upon resume, dm starts processing requests in the block layer queue
as usual
Hope this helps.
--
Jun'ichi Nomura, NEC Corporation
More information about the dm-devel
mailing list