[openib-general][RFC]: CMA IB implementation
Sean Hefty
mshefty at ichips.intel.com
Tue Sep 27 10:10:24 PDT 2005
Guy German wrote:
> Basically I think that we can definitely agree that if the cma can
> implement ib_at intended functionality it should replace it - no need to
> have 2 modules doing the same thing.
I think that there will still be a need for a separate address translation
module(s). I have a call like the following in my latest version of the CMA:
int ib_resolve_addr(struct sockaddr *src_addr,
struct sockaddr *dst_addr,
void (*callback)(int status, struct ib_addr *addr,
void *context), void *context);
It uses ARP to convert a dst_addr and an optional src_addr to an sgid/dgid. My
intent is that this routine be moved to a separate module that deals only with
resolving IP addresses to hardware addresses using ARP.
This essentially separates the ARP handling from ib_at into its own module. I
would rather start with some basic functionality that can be built upon rather
than jumping directly to a ARP/ATS/QoS/caching handling interface.
> 1. Caching
> sean> generic SA caching module should be a part of ib_sa or exist
> separately.
>
> What about specific path records caching with event driven invalidate
> logic ?
Caching will be complex, which is why I think that it needs to have its own
module. I'm envisioning a cache that can be saved to disk for faster system
startup.
> 4. ATS registration
> sean> I think that ATS registration/deregistration should be integrated
> with
> sean> IPoIB.
>
> I don't think there is a consensus around that, but I don't know all
> details.
This makes more sense to me than having the ATS code deference IPoIB private
data structures. However, if adding an rdma_ptr to the net_device can avoid
this, then that will work. And to be clear, I was referring to only
registration/deregistration, not ATS queries. It looks like the ATS code
periodically scans all network devices in the system looking for changes in
order to update the ATS records. If this is the case, I would think that IPoIB
should be able to do this more efficiently. (I'm not that familiar with the
code, so I could be off here.)
> 5. retries
> retries could be centralized in the ib_at approach.
For at least the ARP resolution module that I mentioned, I would expect all
retries to be handled by that module. For SA queries, since the MAD layer
already performs retries, we just need to enable access through the API.
- Sean
More information about the general
mailing list