Thread (76 messages) 76 messages, 11 authors, 2025-04-22

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

From: Yunsheng Lin <hidden>
Date: 2025-03-28 12:20:20
Also in: linux-rdma

On 2025/3/27 21:26, Jason Gunthorpe wrote:

...
quoted
which I think will work for NICs that
need a PD and ones that don't.  It can support MR -> PD -> Job, but
I considered the PD -> job relationship as 1 to many. 
Yes, and the 1:1 is degenerate.
quoted
Sure, It's challenging in that a UET endpoint (QP) may communicate
with multiple jobs, and a MR may be accessible by a single job, all
jobs, or only a few.
I would suggest that the PD is a superset of all jobs and the objects
(endpoint, mr, etc) get to choose a subset of the PD's jobs during
allocation?

Or you keep job/pd as 1:1 and allow specifying multiple PDs during
object allocation.

But to be clear, this is largely verbs modeling stuff - however there
is a certain practicality to trying to fit this multi-job ability into
a PD because it allow reusing alot of existing uAPI kernel code.

Especially if people are going to take existing RDMA HW and tweak it
to some level of UET (ie support only single job) and still require a
HW level PD under the covers.
Through reading this patchset, it seems the semantics of 'job' for UEC
is about how to identify a PDC(Packet Delivery Context) instance, which
is specified by src fep_address/pdc_id and dst fep_address/pdc_id as
there seems to be more than one PDC instance between two nodes, so the
'job' is really about grouping processes from the same 'job' to use the
same PDC instance and preventing processes from different 'job' from
using the same PDC instance?

And the interesting part about the PDC seems to be:
1. It is created dynamically when a request packet is sent on the target
   side or received on the initiator side, and destroyed dynamically through
   timeout mechanism.
2. It seems a PDC instance can be shared between different processes from the
   same 'job'.

And SRD seems to be using AH(address handle) to specify a SRD connection between
two nodes, and there is only one SRD context instance between two nodes, so different
process may have their own AH pointing to the same SRD context instance between the
same two nodes?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help