[ofa-general] Re: [PATCH] opensm: multi lid routing balancing for updn/minhop

Sasha Khapyorsky sashak at voltaire.com
Sun Mar 9 08:09:56 PDT 2008


Hi Al,

On 15:08 Mon 03 Mar     , Al Chu wrote:
> 
> When we turn on lmc > 0, we noticed that sometimes extra lids from a
> port would be forwarded through one parent switch than another.  For
> example, suppose LMC = 2 and we are trying to route lids (1,2,3,4).  The
> lids can be forwarded out of 8 ports, which go to two different
> switches.  We would see something like this:
> 
> switch port 1 (to switch A): 1
> switch port 2 (to switch A): 3
> switch port 3 (to switch A): 4
> switch port 4 (to switch A):
> switch port 5 (to switch B): 2
> switch port 6 (to switch B)
> switch port 7 (to switch B):
> switch port 8 (to switch B):
> 
> This occurs because the routing for LMC only favors those sys_guids and
> node_guids that have not been seen before.  But it does not consider how
> many times we have routed through a sys_guid/node_guid before.
> 
> The patch is fairly straight forward.  We just count how many times we
> have forwarded to a sys_guid/node_guid before.  If there is a port that
> has an equal number of paths to another port, but has not been forwarded
> out as much, we pick that port.  Most of the patch is architectural
> changes.  I stuff the sys_guid, node_guid, and a counter inside one
> struct and array, because we can't count properly using the multiple
> uint64_t arrays from before.

This looks like a great improvement. Thanks.

Sasha



More information about the general mailing list