Hello, all.

For the past few years, we (QLogic) have been using the IB user space SA module 
that was originally written by Sean Hefty. We think it would be great if this 
module were to become part of the official Linux Infiniband subsystem - but 
rather than simply dumping this on Roland as a surprise, I thought it might be 
a good idea to talk about it, first, and find out what the best approach would 
be.


What is ib_usa?
---------------
The ib_usa module adds two features to the Infiniband Subsystem. It allows user 
applications to subscribe to SA notifications (remote port up, remote port 
down, etc.) and it allows user applications to subscribe to multicast groups. 
It does this via a device file, /dev/infiniband/ib_usa, similar to 
/dev/infiniband/uverbs and /dev/infiniband/umad.


Why is this needed?
-------------------
The SA protocol allows notices and multicast membership to be managed at a CA 
port level.  As a result, if multiple processes want to receive notices or join 
multicast groups, that registration must be coordinated per CA port.  Existing 
code in the Linux kernel exists for this purpose, coordinating the needs of 
various Infiniband kernel modules and presenting a single "per server CA port" 
perspective to the SA.  The IB user space SA module provides a mechanism for 
user space applications to take advantage of this existing kernel code for 
managing SA registrations.

By providing this mechanism, ib_usa provides a convenient and useful way for 
user applications to detect when nodes enter or leave the fabric. This is 
useful for fabric monitoring applications (like a system admin dashboard) or, 
conceivably, to allow a cluster application to detect problems and to 
dynamically balance a computational load across the fabric.

In addition, the multicast functionality will allow user applications to use 
properly verbs to receive multicast traffic.


How will it integrate into the existing Infiniband subsystem?
-------------------------------------------------------------
We recommend including Sean's original module, and we can provide a version of 
it that works fine with the latest versions of OFED. This will add a new kernel 
module to the ofa_kernel package, ib_usa.ko. 

In addition, there will be a need for a shared library to provide an API to 
provide access to ib_usa. I would suggest adding the needed functions to OFED 
management module, as part of the libibumad library, or to their own libibusa 
library. In either case, I would provide the needed code and a sample/test 
application.

So, how about it? What's the best way forward here?



--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to