[openib-general] SA cache design

Sean Hefty sean.hefty at intel.com
Thu Jan 5 13:51:45 PST 2006


>* Regarding the sentence:"Clients would send their queries to the sa_cache
>instead of the SA"
>   I would propose that a "SA MAD send switch" be implemented in the core: Such
>a switch
>   will enable plugging in the SA cache (I would prefer calling it SA local
>agent due to
>   its extended functionality). Once plugged in, this "SA local agent" should
>be forwarded all
>   outgoing SA queries. Once it handles the MAD it should be able to inject the
>response through
>   the core "SA MAD send switch" as if they arrived from the wire.

This was my thought as well.  I hesitated to refer to the cache as a local
agent, since that's an implementation detail.  I want to allow the possibility
for the cache to reside on another system.  For the initial implementation, the
cache would be local however.

>Functional requirements:
>* It is clear that the first SA query to cache is PathRecord.

This will be the first cached query in the initial check-in.

>   So if a new client wants to connect to another node a new PathRecord
>   query will not need to be sent to the SA. However, recent work on QoS has
>pointed out
>   that under some QoS schemes PathRecord should not be shared by different
>clients

I'm not sure that QoS handling is the responsibility of the cache.  The module
requesting the path records should probably deal with this.

>* Forgive me for bringing the following issue - over and over to the group:
>   Multicast Join/Leave should be reference counted. The "SA local agent" could
>be
>   the right place for doing this kind of reference counting (actually if it
>does that
>   it probably needs to be located in the Kernel - to enable cleanup after
>killed processes).

I agree that this is a problem, but I my preference would be for a dedicated
kernel module to handle multicast join/leave requests.

- Sean





More information about the general mailing list