netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Roland Dreier <roland@enfabrica.net>
Cc: Nikolay Aleksandrov <nikolay@enfabrica.net>,
	netdev@vger.kernel.org, shrijeet@enfabrica.net,
	alex.badea@keysight.com, eric.davis@broadcom.com,
	rip.sohan@amd.com, dsahern@kernel.org, bmt@zurich.ibm.com,
	winston.liu@keysight.com, dan.mihailescu@keysight.com,
	kheib@redhat.com, parth.v.parikh@keysight.com, davem@redhat.com,
	ian.ziemba@hpe.com, andrew.tauferner@cornelisnetworks.com,
	welch@hpe.com, rakhahari.bhunia@keysight.com,
	kingshuk.mandal@keysight.com, linux-rdma@vger.kernel.org,
	kuba@kernel.org, pabeni@redhat.com
Subject: Re: [RFC PATCH 00/13] Ultra Ethernet driver introduction
Date: Wed, 26 Mar 2025 12:16:58 -0300	[thread overview]
Message-ID: <Z+QaarAjCb8pCYpU@nvidia.com> (raw)
In-Reply-To: <CALgUMKhB7nZkU0RtJJRtcHFm2YVmahUPCQv2XpTwZw=PaaiNHg@mail.gmail.com>

On Mon, Mar 24, 2025 at 01:22:13PM -0700, Roland Dreier wrote:
> Hi Jason,
> 
> I think we were not clear on the overall discussion and so we are much
> closer to agreement than you might think, see below.

Certainly this was my impression after we talked, so is hard to
understand what this series is supposed to be. It doesn't seem to
advance things towards using the RDMA subsystem.
 
> First, want to clarify that this patchset is collaborative development
> within the overall Ultra Ethernet Consortium. 

Consortiums don't get to vote their way into Linux patch acceptance.

> UEC is definitely not trying to create anything new beyond adding
> support for Ultra Ethernet. By far the bulk of this patchset is adding
> a software model of the specific Ultra Ethernet transport's protocol /
> packet handling, and that code is currently in drivers/ultraeth. I
> don't feel that pathnames are particularly important, and we could
> move the code to something like drivers/infiniband/ultraeth, but that
> seems a bit silly. But certainly we are open to suggestions.

It is not the directory name that is at issue, it is completely
ignoring all the existing infrastructure and doing something entirely
new and entirely isolated.

I expect you will have uec named files under drivers/infiniband, and
they should be integrated within existing architecture, including
extensions.

It is a shame we won't rename the directory name, or rename alot of
other stuff, but I gather that is the community preference.

> To be clear - we are not trying to reinvent or bypass uverbs, and
> there is complete agreement within UEC that we should reuse the uverbs
> infrastructure so that we get the advantages of solid, mature
> mechanisms for memory pinning, resource tracking / cleanup ordering,
> etc.

My expectation is that the software interface path for a RDMA
transport exist mainly for testing and development purposes. It should
be deliberately designed to mimic a HW driver and exercise the same
interfaces. Even if that is more work or inconvenient.

> With that said, Ultra Ethernet devices likely will not have interfaces
> that map well onto QPs, MRs, etc. so we will be sending patches to
> drivers/infiniband/uverbs* that generalize things to allow "struct
> ib_device" objects that do not implement "required verbs."

That's fine, we can look at all those things as you go along.

Just be mindful that given UEC's lack of a HW standard it will be hard
to judge if things are HW specific or UEC general. Explain in the
patches why you think many HW devices will be using new general common
objects.

Job ID is a good example that is obviously required by spec to be
common.

My advice, and the same advice I gave to Habana, is to ignore the
spelling of things like PD, QP and MR and focus on the fundamental
purpose they represent. UEC has a "QP" in that all HW devices will
have some kind of queue structure to userspace. UEC has "PD" in that
it must have some kind of HW security boundary to keep one uverbs
context from touching another's resources (it may be that job is how
UEC spells PD), and so on.

Use driver specific calls when appropriate.

kernel-uet will be a different conversation, and I suspect kernel uet
will be very feature limited to focus just on something like storage.

> I think the netlink API and job handling overall is the area where the
> most discussion is probably required. UE is somewhat novel in

Yes, that is new, but also an idea that is being copied.

> elevating the concept of a "job" to a standard object with specific
> properties that determine the values in packet headers. But I'm open
> to making "job" a top-level RDMA object...

I think this is right

> I guess the idea would be
> to define an interface for creating a new type of "job FD" with a
> standard ABI for setting properties?

I suspect so? /dev/infiniband/job perhaps where opening the FD creates
a job container then some ioctls to realize it into a per-protocol job
description with per-protocol additional properties?

Present a job FD to a uverbs FD to join the job's security context

Another variation might be an entire jobfs but I would probably start
with job FD first and only do a jobfs later if people demand it..

I think CAP_SYS_NET_ADMIN is a bad security model for jobs.

Regards,
Jason

      parent reply	other threads:[~2025-03-26 15:17 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-06 23:01 [RFC PATCH 00/13] Ultra Ethernet driver introduction Nikolay Aleksandrov
2025-03-06 23:01 ` [RFC PATCH 01/13] drivers: ultraeth: add initial skeleton and kconfig option Nikolay Aleksandrov
2025-03-06 23:01 ` [RFC PATCH 02/13] drivers: ultraeth: add context support Nikolay Aleksandrov
2025-03-06 23:01 ` [RFC PATCH 03/13] drivers: ultraeth: add new genl family Nikolay Aleksandrov
2025-03-06 23:01 ` [RFC PATCH 04/13] drivers: ultraeth: add job support Nikolay Aleksandrov
2025-03-06 23:01 ` [RFC PATCH 05/13] drivers: ultraeth: add tunnel udp device support Nikolay Aleksandrov
2025-03-06 23:01 ` [RFC PATCH 06/13] drivers: ultraeth: add initial PDS infrastructure Nikolay Aleksandrov
2025-03-06 23:01 ` [RFC PATCH 07/13] drivers: ultraeth: add request and ack receive support Nikolay Aleksandrov
2025-03-06 23:01 ` [RFC PATCH 08/13] drivers: ultraeth: add request transmit support Nikolay Aleksandrov
2025-03-06 23:01 ` [RFC PATCH 09/13] drivers: ultraeth: add support for coalescing ack Nikolay Aleksandrov
2025-03-06 23:02 ` [RFC PATCH 10/13] drivers: ultraeth: add sack support Nikolay Aleksandrov
2025-03-06 23:02 ` [RFC PATCH 11/13] drivers: ultraeth: add nack support Nikolay Aleksandrov
2025-03-06 23:02 ` [RFC PATCH 12/13] drivers: ultraeth: add initiator and target idle timeout support Nikolay Aleksandrov
2025-03-06 23:02 ` [RFC PATCH 13/13] HACK: drivers: ultraeth: add char device Nikolay Aleksandrov
2025-03-08 18:46 ` [RFC PATCH 00/13] Ultra Ethernet driver introduction Leon Romanovsky
2025-03-09  3:21   ` Parav Pandit
2025-03-11 14:20     ` Bernard Metzler
2025-03-11 14:55       ` Leon Romanovsky
2025-03-11 17:11       ` Sean Hefty
2025-03-12  9:20         ` Nikolay Aleksandrov
2025-03-12  9:40   ` Nikolay Aleksandrov
2025-03-12 11:29     ` Leon Romanovsky
2025-03-12 14:20       ` Nikolay Aleksandrov
2025-03-12 15:10         ` Leon Romanovsky
2025-03-12 16:00           ` Nikolay Aleksandrov
2025-03-14 14:53           ` Bernard Metzler
2025-03-17 12:52             ` Leon Romanovsky
2025-03-19 13:52             ` Jason Gunthorpe
2025-03-19 14:02               ` Nikolay Aleksandrov
2025-03-14 20:51           ` Stanislav Fomichev
2025-03-17 12:30             ` Leon Romanovsky
2025-03-19 19:12               ` Stanislav Fomichev
2025-03-15 20:49           ` Netlink vs ioctl WAS(Re: " Jamal Hadi Salim
2025-03-17 12:57             ` Leon Romanovsky
2025-03-18 22:49             ` Jason Gunthorpe
2025-03-19 18:21               ` Jamal Hadi Salim
2025-03-19 19:19                 ` Jason Gunthorpe
2025-03-25 14:12                   ` Jamal Hadi Salim
2025-03-26 15:50                     ` Jason Gunthorpe
2025-04-08 14:16                       ` Jamal Hadi Salim
2025-04-09 16:10                         ` Jason Gunthorpe
2025-03-19 16:48 ` Jason Gunthorpe
2025-03-20 11:13   ` Yunsheng Lin
2025-03-20 14:32     ` Jason Gunthorpe
2025-03-20 20:05       ` Sean Hefty
2025-03-20 20:12         ` Jason Gunthorpe
2025-03-21  2:02           ` Yunsheng Lin
2025-03-21 12:01             ` Jason Gunthorpe
2025-03-24 20:22   ` Roland Dreier
2025-03-24 21:28     ` Sean Hefty
2025-03-25 13:22       ` Bernard Metzler
2025-03-25 17:02         ` Sean Hefty
2025-03-26 14:45           ` Jason Gunthorpe
2025-03-26 15:29             ` Sean Hefty
2025-03-26 15:53               ` Jason Gunthorpe
2025-03-26 17:39                 ` Sean Hefty
2025-03-27 13:26                   ` Jason Gunthorpe
2025-03-28 12:20                     ` Yunsheng Lin
2025-03-31 19:49                       ` Sean Hefty
2025-04-01  9:19                         ` Yunsheng Lin
2025-03-31 19:29                     ` Sean Hefty
2025-04-01 13:04                       ` Jason Gunthorpe
2025-04-01 16:57                         ` Sean Hefty
2025-04-01 19:39                           ` Jason Gunthorpe
2025-04-03  1:30                             ` Sean Hefty
2025-04-04 16:03                             ` Ziemba, Ian
2025-04-05  1:07                               ` Sean Hefty
2025-04-07 19:32                                 ` Ziemba, Ian
2025-04-08  4:40                                   ` Sean Hefty
2025-04-16 23:58                                   ` Sean Hefty
2025-04-17  1:23                                     ` Jason Gunthorpe
2025-04-17  2:59                                       ` Sean Hefty
2025-04-17 13:31                                         ` Jason Gunthorpe
2025-04-18 16:50                                           ` Sean Hefty
2025-04-22 15:44                                             ` Jason Gunthorpe
2025-03-26 15:16     ` Jason Gunthorpe [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z+QaarAjCb8pCYpU@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=alex.badea@keysight.com \
    --cc=andrew.tauferner@cornelisnetworks.com \
    --cc=bmt@zurich.ibm.com \
    --cc=dan.mihailescu@keysight.com \
    --cc=davem@redhat.com \
    --cc=dsahern@kernel.org \
    --cc=eric.davis@broadcom.com \
    --cc=ian.ziemba@hpe.com \
    --cc=kheib@redhat.com \
    --cc=kingshuk.mandal@keysight.com \
    --cc=kuba@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nikolay@enfabrica.net \
    --cc=pabeni@redhat.com \
    --cc=parth.v.parikh@keysight.com \
    --cc=rakhahari.bhunia@keysight.com \
    --cc=rip.sohan@amd.com \
    --cc=roland@enfabrica.net \
    --cc=shrijeet@enfabrica.net \
    --cc=welch@hpe.com \
    --cc=winston.liu@keysight.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).