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

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

From: Sean Hefty <hidden>
Date: 2025-03-26 17:39:55
Also in: linux-rdma

quoted
quoted
Like I said already, I think Job needs to be a first class RDMA
object that is used by all transports that have job semantics.
How do you handle or expose device specific resource allocations or
restrictions, which may be needed?  Should a kernel 'RDMA job manager'
abstract device level resources?

Consider a situation where a MR or MW should only be accessible by a
specific job.  When the MR is created, the device specific job
resource may be needed.  Should drivers need to query the job manager
to map some global object to a device specific resource?
I imagine for cases like that the job would be linked to the PD and then MR ->
PD -> Job.

The kernel side would create any HW object for the job when the PD is created
for a specific HW device.

The PD security semantic for the MR would be a little bit different in that the
PD is more like a shared PD.
The PD is a problem, as it's not a transport function.  It's a hardware implementation component; one which may NOT exist for a UEC NIC.  (I know there are NICs which do not implement PDs and have secure RDMA transfers.)  I have a proposal to rework/redefine PDs to support a more general model, 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.  I can't immediately think of a reason why a 1:1 'job-based PD' wouldn't work in theory.

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.

Basically, the RDMA PD model forces a HW implementation.  Some, but not all, NICs will implement this.  But in general, there's not a clean {PD, QP, MR, job} relationship.

- Sean
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help