Subject: Re: [RFC PATCH 06/11] IB/Verbs: Use management helper has_sa() and cap_sa(), for sa-check

From: Jason Gunthorpe <[email-masked]>
Date: Tue, 31 Mar 2015 17:12:02 -0600

On Mon, Mar 30, 2015 at 01:02:03PM -0400, Doug Ledford wrote:

> If we use something like this, then the above is all you need.  Then
> every place in the code that checks for something like has_sa or cap_sa
> can be replaced with rdma_ib_mgmt. 

I don't want to see this slide back into some ill defined feature
test.

We need to clearly define exactly what these tests are checking, and I
think, since we have so much code sharing, the checks should be narrow
in scope, not just an entire standard.

I think the basic family of checks Michael identified seemed like
a reasonable start.

Going forward we want to NAK stuff like this:

  if (rdma_ib_mgmt() || rdma_opa_mgmt())
  if (has_sa() || has_opa_foobar())

That indicates we need a new micro feature test.

A big problem here is people working on the core may not know the
intricate details of all the families. This will only get worse when
proprietary tech like OPA gets added. Documenting requirements via a
narrow feature test gives a much higher chance that core stuff will be
right via review.

> But, like I said, this is an all or nothing change, it isn't
> something we can ease into.

Well, we ease into it by introducing the micro tests and then wiping
the legacy ones, followed by changing how the driver/core communicates
the port and device feature set, ideally to a bitset like you've
described.

Michael has tackled the core code, another series could work on the
drivers..

Jason