[ofa-general] [PATCH] osm_ucast_ftree.c Allow horizontal links between switches of max rank

Nicolas Morey-Chaisemartin devel-ofed at morey-chaisemartin.com
Tue Jun 2 05:11:00 PDT 2009


Hi,

I've just run a few tests with your patch using io_guid_files and reverse_hops and it seems your patch introduces a bug.
We have a function to calculate the number per link and if I apply this patch it never returns which usually means there is a loop in the routing scheme.

I have had a quick look at your code.
One thing I'm not sure of is that when a reverse hop is done you increment both the reverse_hop counter and the current_hops one. Which mean when the hops count is calculate for sw_set_hops it is bigger than it is supposed to be.


What should probably be done is increment both but only use current_hops to calculate the number of hops done. reverse_hop will only be used to check if there are still reverse_hop credits left or not (which was its original purpose).

By changing the hops count in both call to set_hops_on_remote_sw  to current_hops+1 and not current_hops+1 +2* reverse_hops, routing has no loops but results are different (some links are more loaded).
I'll run some more tests to see if I can figure this out.


Nicolas

Le 27/05/2009 12:07, Line.Holen at Sun.COM a écrit :
> This patch makes it legal to have cross links (horizontal links) between
> switches at max rank. These switches do have same rank, so hop count cannot
> be calculated based on rank anymore.
> The horizontal links are treated as downlinks. Switch A has a downlink to B
> while B has a downlink to A. Tests on lids and also number of hops makes sure
> that we don't loop back and forth across the link.
> 
> Signed-off-by: Frank Olaf Sem-Jacobsen <frankose at simula.no>
> Signed-off-by: Line Holen <Line.Holen at sun.com>
> 



More information about the general mailing list