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, Jan 03, 2019 at 11:34:54PM +0000, Hefty, Sean wrote:
> > Nobody has presented another criteria that makes EFA and usnic any
> > different, so we are back to the start. Was usnic a bad idea or not?
> > How do we support 'usnic' style devices without wrecking the rest of
> > the stack?
> 
> Let's start by agreeing on what verbs is: an abstract definition of
> the functionality that a NIC supports.  

No, I don't think that at all. Linux common verbs is a concrete
realization of the the IBA and iWarp specifications - with well
defined behaviors from the application layer right down to exactly
which packets are formed on the wire.

The entire point of the verbs ecosystem was to enable heterogenous
interoperability - by being extremely well specified. We now have
many, many vendors implementing interoperable verbs to that spec.

So, to me, anything that is not in that multi-vendor interoperable
space is really NOT common verbs. Extended verbs, direct verbs, maybe,
but certainly not common verbs.

I think you are transfering libfabric thinking to Linux verbs..

> From there, define the uverbs objects in terms of generic behavior,
> with addressing kept separate.

This is what libfabric did :)

> I thought the primary requirement for a driver was to have at least
> one user.  It doesn't matter if the user is another kernel driver or
> a Linux-ABI.

It is a hard minimum requirement, not the only one.. Drivers still
have to fit into the subsystem. Ie you could use the GPU subsystem to
expose EFA, that would be totally nutz, but one could warp the APIs to
fit :(

> If we want to be more specific, does EFA support some subset of the
> commands and data structures defined ib_user_verbs.h in a manner
> that's similar to other devices?  Can the uverbs driver manage
> allocated resources (PDs, MRs, QPs, CQs, AHs) the same as other
> devices.  Based on patch 11 and responses to my questions, it looks
> that way to me.  There are a couple areas where the functionality is
> missing (e.g. QP state transitions), but the submission looks closer
> than not.

I think you are stretching into your 'abstract verbs' idea to claim
the objects are the same as other devices:

A CQ without notification is not really a CQ.

A QP without the verbs state machine is not really a QP.

A PD without rkeys is not really a PD.

Maybe this is OK, but it clearly isn't HW that is implementing
verbs. It is some pick and choose of a convenient subset of common
verbs..

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