BPF List
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: David Vernet <void@manifault.com>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
	Dave Thaler <dthaler1968=40googlemail.com@dmarc.ietf.org>,
	Christoph Hellwig <hch@infradead.org>,
	bpf@ietf.org, bpf <bpf@vger.kernel.org>
Subject: Re: [Bpf] BPF ISA conformance groups
Date: Wed, 13 Dec 2023 08:59:16 -0800	[thread overview]
Message-ID: <ZXni5GGX8iI+fN7t@infradead.org> (raw)
In-Reply-To: <20231212214532.GB1222@maniforge>

On Tue, Dec 12, 2023 at 03:45:32PM -0600, David Vernet wrote:
> > I think we should do just two categories: legacy and the rest,
> > since any scheme will be flawed and infinite bikeshedding will ensue.
> 
> If we do this, then aren't we forcing every vendor that adds BPF support
> to support every single instruction if they want to be compliant?

Yes, you do.  And if we have use cases and implementation restrictions
that ask for not supporting some that would be the biggest reason to
have more groups.  I brough up some examples where we don't need e.g.
atomics.  I've not really heard from implementor that implementing
the instructions is a burden for them, though.

> I think it's reasonable to expect that if you require an atomic add,
> that you may also require the other atomic instructions as well and that
> it would be logical to group them together, yes. I believe that
> Netronome supports all of the atomic instructions, as one example. If
> you're providing a BPF runtime in an environment where atomic adds are
> required, I think it stands to reason that you should probably support
> the other atomics as well, no?

Agreed.

> From my perspective, the reason that we want conformance groups is
> purely for compliance and cross compatibility. If someone has a BPF
> program that does some class of operations, then conformance groups
> inform them about whether their prog will be able to run on some vendor
> implementation of BPF.

Yes.

> FWIW, my perspective is that we should be aiming to enable compliance.
> I don't see any reason why a BPF prog that's offloaded to a NIC to do
> packet filtering shouldn't be able to e.g. run on multiple devices.
> That certainly won't be the case for every type of BPF program, but
> classifying groups of instructions does seem prudent.

100% agreed.

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@infradead.org>
To: David Vernet <void@manifault.com>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
	Dave Thaler <dthaler1968=40googlemail.com@dmarc.ietf.org>,
	Christoph Hellwig <hch@infradead.org>,
	bpf@ietf.org, bpf <bpf@vger.kernel.org>
Subject: Re: [Bpf] BPF ISA conformance groups
Date: Wed, 13 Dec 2023 08:59:16 -0800	[thread overview]
Message-ID: <ZXni5GGX8iI+fN7t@infradead.org> (raw)
Message-ID: <20231213165916.opGuJNrEyHPXrGuQ_PGNIOIO71SKUZ-IIDthzSO6elE@z> (raw)
In-Reply-To: <20231212214532.GB1222@maniforge>

On Tue, Dec 12, 2023 at 03:45:32PM -0600, David Vernet wrote:
> > I think we should do just two categories: legacy and the rest,
> > since any scheme will be flawed and infinite bikeshedding will ensue.
> 
> If we do this, then aren't we forcing every vendor that adds BPF support
> to support every single instruction if they want to be compliant?

Yes, you do.  And if we have use cases and implementation restrictions
that ask for not supporting some that would be the biggest reason to
have more groups.  I brough up some examples where we don't need e.g.
atomics.  I've not really heard from implementor that implementing
the instructions is a burden for them, though.

> I think it's reasonable to expect that if you require an atomic add,
> that you may also require the other atomic instructions as well and that
> it would be logical to group them together, yes. I believe that
> Netronome supports all of the atomic instructions, as one example. If
> you're providing a BPF runtime in an environment where atomic adds are
> required, I think it stands to reason that you should probably support
> the other atomics as well, no?

Agreed.

> From my perspective, the reason that we want conformance groups is
> purely for compliance and cross compatibility. If someone has a BPF
> program that does some class of operations, then conformance groups
> inform them about whether their prog will be able to run on some vendor
> implementation of BPF.

Yes.

> FWIW, my perspective is that we should be aiming to enable compliance.
> I don't see any reason why a BPF prog that's offloaded to a NIC to do
> packet filtering shouldn't be able to e.g. run on multiple devices.
> That certainly won't be the case for every type of BPF program, but
> classifying groups of instructions does seem prudent.

100% agreed.

-- 
Bpf mailing list
Bpf@ietf.org
https://www.ietf.org/mailman/listinfo/bpf

  parent reply	other threads:[~2023-12-13 16:59 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-27 20:18 IETF 118 BPF WG summary David Vernet
2023-11-27 20:18 ` [Bpf] " David Vernet
2023-11-28  9:43 ` Michael Richardson
2023-11-28  9:43   ` Michael Richardson
2023-12-02 19:51 ` BPF ISA conformance groups dthaler1968
2023-12-02 19:51   ` [Bpf] " dthaler1968=40googlemail.com
2023-12-07 21:51   ` David Vernet
2023-12-07 21:51     ` David Vernet
2023-12-10  3:10     ` Alexei Starovoitov
2023-12-10  3:10       ` Alexei Starovoitov
2023-12-10 21:13       ` Watson Ladd
2023-12-10 21:13         ` Watson Ladd
2023-12-12 21:45       ` David Vernet
2023-12-12 21:45         ` David Vernet
2023-12-12 22:01         ` dthaler1968
2023-12-12 22:01           ` dthaler1968=40googlemail.com
2023-12-12 22:55           ` Alexei Starovoitov
2023-12-12 22:55             ` Alexei Starovoitov
2023-12-12 23:35             ` David Vernet
2023-12-12 23:35               ` David Vernet
2023-12-13  1:32               ` Alexei Starovoitov
2023-12-13  1:32                 ` Alexei Starovoitov
2023-12-13 18:56                 ` David Vernet
2023-12-13 18:56                   ` David Vernet
2023-12-14  0:12                   ` Alexei Starovoitov
2023-12-14  0:12                     ` Alexei Starovoitov
2023-12-14 17:44                     ` David Vernet
2023-12-14 17:44                       ` David Vernet
2023-12-15  5:29                       ` Christoph Hellwig
2023-12-15  5:29                         ` Christoph Hellwig
2023-12-19  1:15                         ` Alexei Starovoitov
2023-12-19  1:15                           ` Alexei Starovoitov
2023-12-19 18:10                           ` dthaler1968
2023-12-19 18:10                             ` dthaler1968=40googlemail.com
2023-12-20  3:28                             ` Alexei Starovoitov
2023-12-20  3:28                               ` Alexei Starovoitov
2023-12-21  7:00                               ` Christoph Hellwig
2023-12-21  7:00                                 ` Christoph Hellwig
2024-01-05 22:07                                 ` David Vernet
2024-01-05 22:07                                   ` David Vernet
2024-01-08 16:00                                   ` Christoph Hellwig
2024-01-08 21:51                                     ` Alexei Starovoitov
2024-01-08 21:51                                       ` Alexei Starovoitov
2024-01-09 11:35                                       ` Jose E. Marchesi
2024-01-09 11:35                                         ` Jose E. Marchesi
2024-01-23 21:39                                         ` David Vernet
2024-01-23 21:39                                           ` David Vernet
2024-01-23 23:29                                           ` dthaler1968
2024-01-23 23:29                                             ` dthaler1968=40googlemail.com
2024-01-25  2:55                                             ` Alexei Starovoitov
2024-01-25  2:55                                               ` Alexei Starovoitov
2024-01-09 15:26                                       ` Christoph Hellwig
2023-12-19 18:15                 ` dthaler1968
2023-12-19 18:15                   ` dthaler1968=40googlemail.com
2023-12-13 16:59         ` Christoph Hellwig [this message]
2023-12-13 16:59           ` Christoph Hellwig

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=ZXni5GGX8iI+fN7t@infradead.org \
    --to=hch@infradead.org \
    --cc=alexei.starovoitov@gmail.com \
    --cc=bpf@ietf.org \
    --cc=bpf@vger.kernel.org \
    --cc=dthaler1968=40googlemail.com@dmarc.ietf.org \
    --cc=void@manifault.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