Re: [RFC] Make use of non-dynamic dmabuf in RDMA

From: Gal Pressman
Date: Sat Aug 21 2021 - 05:16:51 EST


On 20/08/2021 17:32, Jason Gunthorpe wrote:
> On Fri, Aug 20, 2021 at 03:58:33PM +0300, Gal Pressman wrote:
>
>> Though it would've been nicer if we could agree on a solution that could work
>> for more than 1-2 RDMA devices, using the existing tools the RDMA subsystem has.
>
> I don't think it can really be done, revoke is necessary, and isn't a
> primitive we have today.
>
> Revoke is sort of like rereg MR, but with a guaranteed no-change to
> the lkey/rkey
>
> Then there is the locking complexity of linking the mr creation and
> destruction to the lifecycle of the pages, which is messy and maybe
> not general. For instance mlx5 would call its revoke_mr, disconnect
> the dmabuf then destroy the mkey - but this is only safe because mlx5
> HW can handle concurrent revokes.

Thanks, that makes sense.

>> That's why I tried to approach this by denying such attachments for non-ODP
>> importers instead of exposing a "limited" dynamic importer.
>
> That is fine if there is no revoke - once revoke exists we must have
> driver and HW support.

Agree.
IIUC, we're talking about three different exporter "types":
- Dynamic with move_notify (requires ODP)
- Dynamic with revoke_notify
- Static

Which changes do we need to make the third one work?