[dm-devel] patch to discovery.c to still get pathpriorityforpaths with path state of PATH_DOWN

Edward Goggin egoggin at emc.com
Wed Nov 15 19:48:08 UTC 2006


On Wednesday, November 15, 2006 1:49 AM, Dave Wysochanski wrote

> One other thought I had was the notion of a "priority valid" 
> flag (or a
> special priority value) in the path for the case of 
> group_by_prio.  Set
> it to invalid in alloc_path(), then just don't add the path to the
> multipath struct in coalesce_paths() if the priority value 
> was invalid.
> Then over in checkerloop(), add the path to the multipath map when you
> get a valid priority.
> 
> It is more complicated than that I'm sure (e.g. checkerloop() assumes
> pp->mpp is non-null in places, etc) but seemed like a half-decent
> approach to at least consider.
> 
> This approach doesn't take into consideration the general case of a
> change in path priority though.

I very much like the first part of your "priority valid" idea
mentioned above.

I've enclosed a patch for the first part of your idea.  The patch
should address the concern you had about recalculating priority
for a path when its path state changes from not PATH_DOWN to
PATH_DOWN.  It now only retrieves the priority for PATH_DOWN
paths if the path's priority has never been successfully
retrieved before.

I've punted for now on the reloading of the map if a path priority
change has caused a path group membership change.  This is kind of
complex, has lots of down sides, and there doesn't seem to be a
need for it as of now.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: structs.h.diff
Type: application/octet-stream
Size: 297 bytes
Desc: structs.h.diff
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20061115/f36fd893/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: structs.c.diff
Type: application/octet-stream
Size: 294 bytes
Desc: structs.c.diff
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20061115/f36fd893/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: discovery.c.diff
Type: application/octet-stream
Size: 1108 bytes
Desc: discovery.c.diff
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20061115/f36fd893/attachment-0002.obj>


More information about the dm-devel mailing list