[openib-general] OpenIB and OpenRDMA: Convergence on common RDMA APIs and ULPs for Linux
Michael Krause
krause at cup.hp.com
Thu May 26 10:48:01 PDT 2005
At 09:49 AM 5/26/2005, Sean Hefty wrote:
>Roland Dreier wrote:
>>I believe the way forward is to evolve the existing drivers/infiniband
>>code already in Linux into a drivers/rdma that supports both IB and
>>RNICs. To be extremely blunt, I believe the RNIC-PI is irrelevant to
>>the Linux kernel -- no IB vendors will support ripping out a working
>>midlayer and starting from scratch, and it doesn't make sense to have
>>two essentially equivalent midlayers in the same kernel.
>
>IMO, any APIs need to evolve out of the implementation. Trying to fit an
>implementation under an existing API tends to lead to either a poor
>implementation, or requires changes to the API anyway.
>
>I think a useful path is for someone to implement an RNIC driver and
>provide feedback on what changes would be required of the Infiniband/core
>layer to support it.
There needs to be a balance between establishing a good, flexible
architecture and how applications or subsystems interact with it. All of
this needs to be grounded in implementation experience so there is a
healthy does of reality. The problem with the iterative-TTM focused API
definitions is they rarely produce something that is focused on the "end
game" for a solid interface. They create instant legacy baggage that
people are unwilling to shed as time goes forward. This legacy inertia is
what has stifled quite a bit of innovation when it comes to software (some
hazard that 90% of the software created today is focused primarily on
legacy investment protection than really new innovation and when you think
about it for a bit of time, you can see that much of this is re-inventing
the wheel or to band-aid over a problem and packaging it as something
innovative).
So, the problem becomes one of finding balance. The people proposing the
various API are people who have implemented various types of solutions so
they are coming with both real experience as well as engineering judgement
of what is required to get the right infrastructure in place for the "end
game" needs. From a practical perspective, one needs to implement these
API and see what is really of value and what should be changed. The key is
to avoid creating the legacy inertia that ends up reducing fragmenting the
interfaces and causes lost productivity, quality problems, etc. So before
people write off the various API as unnecessary or as poor quality, there
should be some implementations developed and some constructive debate of
what features are really of value and what might be deprecated or
eliminated. There is no requirement to ever implement all of an API as
this is where an iterative approach has value. Implement what is needed to
demonstrate the desired value and decide then if it is worthwhile. Just
please don't discount it or toss it all out because it isn't all
implemented today or you don't like some aspect.
>>To put a really concrete proposal on the table, I would suggest to
>>start by extending the current ib_client registration structure
>
>Roland's proposal sounds like a reasonable and fair way to
>begin. Building an abstraction on top of the existing layers seems
>secondary to adding support for other RDMA devices.
Getting the right verbs interface is paramount. Whether one does IT API or
DAPL on top of that for a given subsystem is secondary.
Ideally, OpenIB and OpenRDMA should be focused on developing the RDMA
infrastructure - RDMA verbs, connection management, IB-specific ULP,
etc. They should not be focused on the upper subsystems or ULP. Those
should be done as separate open source projects and they can decide where
best to intersect with the Open* infrastructure. This one-size-fits-all
approach for all subsystems to flow through a given interface is simply
impractical to execute. It might happen over time but it cannot be
force-fit. Let's focus the two efforts on getting as common of an
infrastructure as possible. Some propose RNIC PI; other can propose
something else if there is desire. RNIC PI has value in that it has
focused on the common components between IB and iWARP and left the
IB-specific and CM outside of its definition to allow an OS to decide how
best to support or to allow IB to do what is needed for its particular usages.
Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20050526/98e96683/attachment.html>
More information about the general
mailing list