[ofa-general] Re: [PATCH] osm: enhancing fat-tree routing for non-pure trees

Hal Rosenstock halr at voltaire.com
Sun Jul 8 15:15:17 PDT 2007


Hi Yevgeny,

On Sun, 2007-07-08 at 09:55, Yevgeny Kliteynik wrote:
> Hi Hal.
> 
> This patch handles the two new options for fat-tree routing:
> root guid file and compute node guid files, and by doing that
> fat-tree routing it is able to handle trees that are not pure
> fat-trees, or even not symmetrical.
> But the routing "quality" depends on the tree "correctness" - 
> the more the topology looks like pure fat-tree, the better
> the routing.
> 
> All the changes are in one file - osm_ucast_ftree.c, so as
> much as I've tried to divide this patch into separate stages,
> I found myself going back and fixing things too many times, so
> at this point it won't make sense to send this patch in parts,
> as earlier patches would have too much wrong code that was fixed 
> later.
> 
> Bottom line: sorry, but this thing has to go in a single patch.
> 
> Here's what this patch does:
> 
>  1. Some modifications to ftree data structures and functions
>      - Added guid getters for CAs and switches
>      - Added node type and guid for each port group
>      - Some naming changes
>      - Added get_sw_by_guid and get_hca_by_guid functions
> 
>  2. Reading roots and compute nodes from guid files
>      - Marking CAs with the number of CNs on the node
>      - Marking port groups if they belong to CN
> 
>  3. Ranking rewritten to supports root guids
>      - ftree.tree_rank replaced by two ranks:
>        ftree.max_switch_rank and ftree.leaf_switch_rank.
>      - Tree rank for routing is considered as (ftree.leaf_switch_rank + 1)
> 
>  4. Created leaf switch array that contains all the leafs
>     with CNs and possibly leafs between them, according to
>     the fabric indexing.
> 
>  5. Checking new "lighter" topology constaraint
>      - all the leafs with real CNs should be at the same tree rank.
>  
>  6. Implemented the routing itself:
>      - routing to all the CNs first
>      - routing dummy targets for all the missing nodes
>        or non-CNs that are connected to leaf switches
>      - routing to all the non-CN CAs in the fabric
>        (routing them as real targets on secondary path)
>      - routing to all the switch-to-switch pathes (left the same)
> 
>  7. Updated ordering file dump qfunction
>      - Treating non-compute nodes as dummies
> 
> -- Yevgeny
> 
> Signed-off-by: Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>

Thanks. Applied.

-- Hal




More information about the general mailing list