Re: [PATCH rdma-next 00/13] Elastic Fabric Adapter (EFA) driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Dec 20, 2018 at 10:28:41PM +0000, Hefty, Sean wrote:
> > I followed the comments and your concerns and I'll try to address them all:
> > Let me start by making clear that EFA is not an infiniband device, nor it
> > aspires to being one, but I think it does fit the verbs model.
> 
> I agree.  It has the general abstract hardware semantics that I
> associated as 'verbs' - PD, MR, AH, QP, CQ.

All most all modern high performance hardware has some variation on
QP's and CQ's.

I'm not sure exactly what a device that can't do RDMA is doing with
MRs. 

It doesn't have rkeys, right? So the PD&MR is just some variation of
lkey gather/scatter from user memory??

A MR without an rkey capability is not a MR, we've been calling that
object a 'umem' in verbs lately.

This is my objection to these drivers, the device does not implement
anything close to the expected verbs semantics for any of the objects
it seems to use. 

What value is a PD if there are no rkeys? The only real purpose of a
PD is to provide security via rkeys groupings - so why EFA does it
make a fake PD? To forcibly fit into verbs, it seems.

> > We can implement an rdma-core (libibverbs) userspace provider with
> > support for standard UD (including the 40 bytes offset) and SRD
> > QPs through direct verbs.  I'll also add documentation for SRD QP
> > type, even if we end up using it as a driver QP type.
> 
> IMO, IB hardware semantic quirks should not carry over to more
> generic QP type definitions.  EFA and IB have different addressing
> formats, so an app can't just switch between one UD QP and another.

The QP type must specify broadly how the WR's and WC's work anything
else is madness. Each protocol doesn't get to overload and redefine
the existing well standardized definitions. If it doesn't conform the
the WC and WR model from IBTA it does not get to use the
IBV_QPT_UD/RC/UC/RD's values. Thats verbs. Even iwarp puts in the 40
byte header and doesn't need it.

> I still view SRD as a generic QP type for reliable-unconnected send
> and receive messages.  

Something proprietary and undocumented cannot be part of common
verbs. I am absolutely adament on this. We cannot maintain the core
code as a patchwork of undocumented driver-specific crap.

Driver crap goes in drivers, where it is the driver's problem to
maintain and keep working.

> Along this line, given the constraints of the existing APIs, if a
> reliable-unconnected QP that supported RDMA read/write were ever
> introduced, I would also add that as a new QP type.

Mellanox already has a reliable delivery unconnected QP type that
supports RDMA. It is exposed out of the driver as IBV_QPT_DRIVER
because the protocol and behavior isn't documented.

I don't see any difference with EFA's proprietary protocol.

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux