All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli.us>
To: Edward Cree <ecree.xilinx@gmail.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	John Fastabend <john.fastabend@gmail.com>,
	netdev@vger.kernel.org, deb.chatterjee@intel.com,
	anjali.singhai@intel.com, Vipin.Jain@amd.com,
	namrata.limaye@intel.com, tom@sipanda.io, mleitner@redhat.com,
	Mahesh.Shirshyad@amd.com, tomasz.osinski@intel.com,
	xiyou.wangcong@gmail.com, davem@davemloft.net,
	edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
	vladbu@nvidia.com, horms@kernel.org, bpf@vger.kernel.org,
	khalidm@nvidia.com, toke@redhat.com, mattyk@nvidia.com,
	dan.daly@intel.com, chris.sommers@keysight.com,
	john.andy.fingerhut@intel.com
Subject: Re: [PATCH net-next v8 00/15] Introducing P4TC
Date: Thu, 23 Nov 2023 19:09:24 +0100	[thread overview]
Message-ID: <ZV+VVLWzL/j4ayAt@nanopsycho> (raw)
In-Reply-To: <0d1d37f9-1ef1-4622-409e-a976c8061a41@gmail.com>

Thu, Nov 23, 2023 at 06:53:42PM CET, ecree.xilinx@gmail.com wrote:
>On 23/11/2023 16:30, Jamal Hadi Salim wrote:
>> I was hoping not to say anything but my fingers couldnt help themselves:
>> So "unoffloadable" means there is a binary blob and this doesnt work
>> per your design idea of how it should work?
>> Not that it cant be implemented (clearly it has been implemented), it
>> is just not how _you_ would implement it? All along I thought this was
>> an issue with your hardware.
>
>The kernel doesn't like to trust offload blobs from a userspace compiler,
> because it has no way to be sure that what comes out of the compiler
> matches the rules/tables/whatever it has in the SW datapath.
>It's also a support nightmare because it's basically like each user
> compiling their own device firmware.  At least normally with device
> firmware the driver side is talking to something with narrow/fixed
> semantics and went through upstream review, even if the firmware side is
> still a black box.
>Just to prove I'm not playing favourites: this is *also* a problem with
> eBPF offloads like Nanotubes, and I'm not convinced we have a viable
> solution yet.

Just for the record, I'm not aware of anyone suggesting p4 eBPF offload
in this thread.


>
>The only way I can see to handle it is something analogous to proof-
> carrying code, where the kernel (driver, since the blob is likely to be
> wholly vendor-specific) can inspect the binary blob and verify somehow
> that (assuming the HW behaves according to its datasheet) it implements
> the same thing that exists in SW.
>Or simplify the hardware design enough that the compiler can be small
> and tight enough to live in-kernel, but that's often impossible.

Yeah, that would solve the offloading problem. From what I'm hearing
from multiple sides, not going to happen.

>
>-ed

  reply	other threads:[~2023-11-23 18:09 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-16 14:59 [PATCH net-next v8 00/15] Introducing P4TC Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 01/15] net: sched: act_api: Introduce dynamic actions list Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 02/15] net/sched: act_api: increase action kind string length Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 03/15] net/sched: act_api: Update tc_action_ops to account for dynamic actions Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 04/15] net/sched: act_api: add struct p4tc_action_ops as a parameter to lookup callback Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 05/15] net: sched: act_api: Add support for preallocated dynamic action instances Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 06/15] net: introduce rcu_replace_pointer_rtnl Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 07/15] rtnl: add helper to check if group has listeners Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 08/15] p4tc: add P4 data types Jamal Hadi Salim
2023-11-16 16:03   ` Jiri Pirko
2023-11-17 12:01     ` Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 09/15] p4tc: add template pipeline create, get, update, delete Jamal Hadi Salim
2023-11-16 16:11   ` Jiri Pirko
2023-11-17 12:09     ` Jamal Hadi Salim
2023-11-20  8:18       ` Jiri Pirko
2023-11-20 12:48         ` Jamal Hadi Salim
2023-11-20 13:16           ` Jiri Pirko
2023-11-20 15:30             ` Jamal Hadi Salim
2023-11-20 16:25               ` Jiri Pirko
2023-11-20 18:20       ` David Ahern
2023-11-20 20:12         ` Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 10/15] p4tc: add action template create, update, delete, get, flush and dump Jamal Hadi Salim
2023-11-16 16:28   ` Jiri Pirko
2023-11-17 15:11     ` Jamal Hadi Salim
2023-11-20  8:19       ` Jiri Pirko
2023-11-20 13:45         ` Jamal Hadi Salim
2023-11-20 16:25           ` Jiri Pirko
2023-11-17  6:51   ` John Fastabend
2023-11-16 14:59 ` [PATCH net-next v8 11/15] p4tc: add template table " Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 12/15] p4tc: add runtime table entry create, update, get, delete, " Jamal Hadi Salim
2023-11-16 14:59 ` [PATCH net-next v8 13/15] p4tc: add set of P4TC table kfuncs Jamal Hadi Salim
2023-11-17  7:09   ` John Fastabend
2023-11-19  9:14   ` kernel test robot
2023-11-20 22:28   ` kernel test robot
2023-11-16 14:59 ` [PATCH net-next v8 14/15] p4tc: add P4 classifier Jamal Hadi Salim
2023-11-17  7:17   ` John Fastabend
2023-11-16 14:59 ` [PATCH net-next v8 15/15] p4tc: Add P4 extern interface Jamal Hadi Salim
2023-11-16 16:42   ` Jiri Pirko
2023-11-17 12:14     ` Jamal Hadi Salim
2023-11-20  8:22       ` Jiri Pirko
2023-11-20 14:02         ` Jamal Hadi Salim
2023-11-20 16:27           ` Jiri Pirko
2023-11-20 19:00             ` Jamal Hadi Salim
2023-11-17  6:27 ` [PATCH net-next v8 00/15] Introducing P4TC John Fastabend
2023-11-17 12:49   ` Jamal Hadi Salim
2023-11-17 18:37     ` John Fastabend
2023-11-17 20:46       ` Jamal Hadi Salim
2023-11-20  9:39         ` Jiri Pirko
2023-11-20 14:23           ` Jamal Hadi Salim
2023-11-20 18:10             ` Jiri Pirko
2023-11-20 19:56               ` Jamal Hadi Salim
2023-11-20 20:41                 ` John Fastabend
2023-11-20 22:13                   ` Jamal Hadi Salim
2023-11-20 21:48                 ` Daniel Borkmann
2023-11-20 22:56                   ` Jamal Hadi Salim
2023-11-21 13:06                     ` Jiri Pirko
2023-11-21 13:47                       ` Jamal Hadi Salim
2023-11-21 14:19                         ` Jiri Pirko
2023-11-21 15:21                           ` Jamal Hadi Salim
2023-11-22  9:25                             ` Jiri Pirko
2023-11-22 15:14                               ` Jamal Hadi Salim
2023-11-22 18:31                                 ` Jiri Pirko
2023-11-22 18:50                                   ` John Fastabend
2023-11-22 19:35                                   ` Jamal Hadi Salim
2023-11-23  6:36                                     ` Jiri Pirko
2023-11-23 13:22                                       ` Jamal Hadi Salim
2023-11-23 13:34                                         ` Jiri Pirko
2023-11-23 13:45                                           ` Jamal Hadi Salim
2023-11-23 14:07                                             ` Jiri Pirko
2023-11-23 14:28                                               ` Jamal Hadi Salim
2023-11-23 15:27                                                 ` Jiri Pirko
2023-11-23 16:30                                                   ` Jamal Hadi Salim
2023-11-23 17:53                                                     ` Edward Cree
2023-11-23 18:09                                                       ` Jiri Pirko [this message]
2023-11-23 18:58                                                         ` Jamal Hadi Salim
2023-11-23 18:53                                                       ` Jakub Kicinski
2023-11-23 19:42                                                         ` Tom Herbert
2023-11-24 10:39                                                         ` Jiri Pirko
2023-11-23 18:04                                                     ` Jiri Pirko

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=ZV+VVLWzL/j4ayAt@nanopsycho \
    --to=jiri@resnulli.us \
    --cc=Mahesh.Shirshyad@amd.com \
    --cc=Vipin.Jain@amd.com \
    --cc=anjali.singhai@intel.com \
    --cc=bpf@vger.kernel.org \
    --cc=chris.sommers@keysight.com \
    --cc=dan.daly@intel.com \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=deb.chatterjee@intel.com \
    --cc=ecree.xilinx@gmail.com \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=jhs@mojatatu.com \
    --cc=john.andy.fingerhut@intel.com \
    --cc=john.fastabend@gmail.com \
    --cc=khalidm@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=mattyk@nvidia.com \
    --cc=mleitner@redhat.com \
    --cc=namrata.limaye@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=toke@redhat.com \
    --cc=tom@sipanda.io \
    --cc=tomasz.osinski@intel.com \
    --cc=vladbu@nvidia.com \
    --cc=xiyou.wangcong@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.