***SPAM*** Re: [ofa-general] [PATCH 0/6] opensm: Unicast Routing Cache

Hal Rosenstock hal.rosenstock at gmail.com
Mon Oct 6 07:08:12 PDT 2008


Hi Yevgeny,

On Sun, Oct 5, 2008 at 9:26 PM, Yevgeny Kliteynik
<kliteyn at dev.mellanox.co.il> wrote:
> Hi Sasha,
>
> The following series of 6 patches implements unicast routing cache
> in OpenSM.
>
> This implementation (v2, previous version was sent before OFED 1.3)
> was rewritten from scratch:
>  - no caching of existing connectivity
>  - no caching of existing lid matrices
>  - each switch has an LFT buffer that contains the result of
>   the last routing engine execution (instead of one buffer
>   in ucast_mgr)
>  - links/ports/nodes changes are spotted during the discovery
>  - only the links/ports/nodes that  went down are cached
>  - when switch goes down, caching its lid matrices and LFT
>
> In one of the following cases we can use cached routing
>  - there is no topology change
>  - one or more CAs disappeared
>  - one or more leaf switches disappeared
> In these cases cached routing is written to the switches as is
> (unless the switch doesn't exist).
> If there is any other topology change, existing cache is invalidated
> and the routing engine(s) run as usual.

Glad to see this!

A few comments/questions:

It seems that there is a LFT cache per switch. This seems to be a big
memory penalty to me (in large subnets). So I have two questions
related to this:
Can this only be done this way when cached routing is being used ?
Also, when cached routing is being used, is this only needed for leaf switches ?

I'm wondering when there is a cached node match whether the available
peer ports/neighbors are validated (or something equivalent) to know
caching is valid ? It might also include whether a switch is still a
leaf switch (which may be redundant as that should show up as a peer
port/neighbor change). It looks like the structure is there for this
but I didn't review the code in detail.

Are you sure all the memory allocation failures are handled properly
within the routing cache code ? What I mean is that NULL is returned
and does this always result in a caching not used/routing recalculated
? Also, in that case, should some log message be indicated rather than
hiding this ?

Nit: doc/current-routing.txt should also be updated for this feature.

-- Hal

> The patches are:
>  - patch 1/6: move lft_buf from ucast_mgr to osm_switch
>  - patch 2/6: Add "-A" or "--ucast_cache" option to opensm
>  - patch 3/6: adding osm_ucast_cache.{c,h} files (this is
>   the cache implementation itself)
>  - patch 4/6: adding new cache files to makefile
>  - patch 5/6: integrating unicast cache into the discovery
>   and ucast manager
>  - patch 6/6: man entry for cached routing
>
> -- Yevgeny
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
>



More information about the general mailing list