[dm-devel] [PATCH] dm-mpath: push back requests instead of queueing

Junichi Nomura j-nomura at ce.jp.nec.com
Tue Nov 12 10:25:06 UTC 2013


On 11/12/13 19:17, Hannes Reinecke wrote:
> On 11/12/2013 11:00 AM, Junichi Nomura wrote:
>> On 11/12/13 18:05, Hannes Reinecke wrote:
> [ .. ]
>>> We _could_ optimize this in __switch_pg(), to call pgpath_busy()
>>> when selecting the paths. But that should be done by the path selector.
>>> So for that we would need to separate the functionality of the
>>> path selector and __switch_pg; currently it's unclear whether
>>> we need to call pgpath_busy() in __switch_pg or not.
>>
>> There is no need to call pgpath_busy in __switch_pg.
>>
>> If we call __pgpath_busy() in map function, I think it's here:
>>
>> 	if (pgpath) {
>> + 		if (__pgpath_busy(pgpath))
>> + 			r = DM_MAPIO_REQUEUE;
>> 		else if (pg_ready(m)) {
>> 			... // remap
>> 			r = DM_MAPIO_REMAPPED;
>> 		} else {
>> 			__pg_init_all_paths(m);
>> 			r = DM_MAPIO_REQUEUE;
>> 		}
>> 	...
>>
> Which is what I had in mind.

Great.

>> or in a path selector.
>>
> Hmm. The path selector might have a reason for selecting this
> particular path. So I'd prefer not to have it in there.

Yeah, that's my concern, too.

-- 
Jun'ichi Nomura, NEC Corporation




More information about the dm-devel mailing list