[dm-devel] [multipath tools] pgp->priority average calculation

Mike Christie michaelc at cs.wisc.edu
Tue Jan 8 22:51:31 UTC 2013


Hey Ben and Hannes and Christophe,

Happy multipath-tools patch submission day :)

I had a question on the pgp->priority average calculation and its
display to the user.


Ben, you added the patch

commit cd21bd290a57eed350d564bac403da9d6941a144
Author: Benjamin Marzinski <bmarzins at redhat.com>
Date:   Wed Nov 10 12:52:20 2010 -0600

    multipath: sort all pathgroups by priority


which did

@@ -25,14 +25,17 @@ path_group_prio_update (struct pathgroup * pgp)
                        pgp->enabled_paths++;
                }
        }
-       pgp->priority = priority;
+       if (pgp->enabled_paths)
+               pgp->priority = priority / pgp->enabled_paths;
+       else
+

and

@@ -387,9 +386,7 @@ snprint_pg_pri (char * buff, size_t len, struct
pathgroup *
         * Printing is another reason to update.
         */
        path_group_prio_update(pgp);
-       if (pgp->enabled_paths)
-               avg_priority = pgp->priority / pgp->enabled_paths;
-       return snprint_int(buff, len, avg_priority);
+


but then Hannes later added the patch:


commit 750db1f0dc08bf1d96ce64d32786dfe07b8ae3f9
Author: Hannes Reinecke <hare at suse.de>
Date:   Wed Mar 17 08:32:51 2010 +0100

    Display avg priority as group priority


which added it back in the print code:


-       return snprint_int(buff, len, pgp->priority);
+       if (pgp->enabled_paths)
+               avg_priority = pgp->priority / pgp->enabled_paths;
+       return snprint_int(buff, len, avg_priority);


So when we print the prio, it ends up getting divided by the number of
enabled paths twice.


Was Hannes's patch a mistake? Should it be reverted?




More information about the dm-devel mailing list