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

Al Chu chu11 at llnl.gov
Mon Mar 3 15:08:44 PST 2008


Hey Sasha,

I was originally going to submit this later on, but given the recent
"rebalancing switch connections" threads, I figure perhaps was now a
good time to post this patch.

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.

Thanks,
Al

-- 
Albert Chu
chu11 at llnl.gov
925-422-5311
Computer Scientist
High Performance Systems Division
Lawrence Livermore National Laboratory
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-support-balanced-multi-lid-routing.patch
Type: text/x-patch
Size: 15441 bytes
Desc: not available
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20080303/9b27fb0c/attachment.bin>


More information about the general mailing list