Subject: Re: [PATCH rdma-next 01/10] RDMA: Add access flags to ib_alloc_mr() and ib_mr_pool_init()

From: Christoph Hellwig <[email-masked]>
Date: Tue, 6 Apr 2021 16:54:57 +0200

On Tue, Apr 06, 2021 at 11:40:39AM -0300, Jason Gunthorpe wrote:
> Yes, but the complexity is how the drivers are constructed they are
> designed to reject flags they don't know about..
> 
> Hum, it looks like someone has already been in here and we now have a
> IB_ACCESS_OPTIONAL concept. 
> 
> Something like this would be the starting point:
>
> [...]
>
> However I see only EFA actually uses IB_ACCESS_OPTIONAL, so the lead
> up would be to audit all the drivers to process optional access_flags
> properly. Maybe this was done, but I don't see much evidence of it..
>
> Sigh. It is a big mess cleaning adventure in drivers really.

Yes.  When passing flags to drivers we need to have a good pattern
in place for distinguishing between mandatory and optional flags.
That is something everyone gets wrong at first (yourself included)
and which then later needs painful untangling.  So I think we need
to do that anyway.

> > Do we actually ever need the strict ordering semantics in the kernel?
> 
> No, only for uverbs.

Which is a pretty clear indicator that we should avoid all this ULP
churn.  Note that the polarity of the the flag passed to the HCA
driver doesn't really matter either - we should just avoid having to
deal with it in the kernel ULP API.