Subject: Re: [RFC PATCH 00/13] Ultra Ethernet driver introduction

From: Jason Gunthorpe <[email-masked]>
Date: Tue, 1 Apr 2025 10:04:13 -0300

On Mon, Mar 31, 2025 at 07:29:32PM +0000, Sean Hefty wrote:

> Specifically, I want to *allow* separating the different functions
> that a single PD provides into separate PDs.  The functions being
> page mapping (registration), local (lkey) access, and remote (rkey)
> access.  

That seems like quite a stretch for the PD.. Especially from a verbs
perspective we do expect single PD and that is the entire security
context.

I think you face a philosophical choice of either a bigger PD that
encompasses multiple jobs, or a PD that isn't a security context and
then things like job handle lists in other APIs..

> As an optimization, registration can be a separate function, so that
> the same page mapping can be re-used across different jobs as they
> start and end.  This requires some ability to import a MR from one
> PD into another.  This is probably just an optimization and not
> required for a job model.

Donno, it depends what the spec says about the labels. Is there an
expectation that the rkey equivalent is identical across all jobs, or
is there an expectation that every job has a unique rkey for the same
memory?

I still wouldn't do something like import (which implies sharing the
underlying page list), having a single MR object with multiple rkeys
will make an easier implementation.

Jason