From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Stanislav Fomichev <sdf@google.com>
Cc: bpf@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net,
andrii@kernel.org, martin.lau@linux.dev, song@kernel.org,
yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org,
haoluo@google.com, jolsa@kernel.org,
David Ahern <dsahern@gmail.com>, Jakub Kicinski <kuba@kernel.org>,
Willem de Bruijn <willemb@google.com>,
Jesper Dangaard Brouer <brouer@redhat.com>,
Anatoly Burakov <anatoly.burakov@intel.com>,
Alexander Lobakin <alexandr.lobakin@intel.com>,
Magnus Karlsson <magnus.karlsson@gmail.com>,
Maryam Tahhan <mtahhan@redhat.com>,
xdp-hints@xdp-project.net, netdev@vger.kernel.org
Subject: [xdp-hints] Re: [PATCH bpf-next 05/11] veth: Support rx timestamp metadata for xdp
Date: Tue, 15 Nov 2022 23:46:02 +0100 [thread overview]
Message-ID: <8735ajet05.fsf@toke.dk> (raw)
In-Reply-To: <CAKH8qBsEGD3L0XAVzVHcTW6k_RhEt74pfXrPLANuznSAJw7bEg@mail.gmail.com>
Stanislav Fomichev <sdf@google.com> writes:
> On Tue, Nov 15, 2022 at 8:17 AM Toke Høiland-Jørgensen <toke@redhat.com> wrote:
>>
>> Stanislav Fomichev <sdf@google.com> writes:
>>
>> > The goal is to enable end-to-end testing of the metadata
>> > for AF_XDP. Current rx_timestamp kfunc returns current
>> > time which should be enough to exercise this new functionality.
>> >
>> > Cc: John Fastabend <john.fastabend@gmail.com>
>> > Cc: David Ahern <dsahern@gmail.com>
>> > Cc: Martin KaFai Lau <martin.lau@linux.dev>
>> > Cc: Jakub Kicinski <kuba@kernel.org>
>> > Cc: Willem de Bruijn <willemb@google.com>
>> > Cc: Jesper Dangaard Brouer <brouer@redhat.com>
>> > Cc: Anatoly Burakov <anatoly.burakov@intel.com>
>> > Cc: Alexander Lobakin <alexandr.lobakin@intel.com>
>> > Cc: Magnus Karlsson <magnus.karlsson@gmail.com>
>> > Cc: Maryam Tahhan <mtahhan@redhat.com>
>> > Cc: xdp-hints@xdp-project.net
>> > Cc: netdev@vger.kernel.org
>> > Signed-off-by: Stanislav Fomichev <sdf@google.com>
>> > ---
>> > drivers/net/veth.c | 14 ++++++++++++++
>> > 1 file changed, 14 insertions(+)
>> >
>> > diff --git a/drivers/net/veth.c b/drivers/net/veth.c
>> > index 2a4592780141..c626580a2294 100644
>> > --- a/drivers/net/veth.c
>> > +++ b/drivers/net/veth.c
>> > @@ -25,6 +25,7 @@
>> > #include <linux/filter.h>
>> > #include <linux/ptr_ring.h>
>> > #include <linux/bpf_trace.h>
>> > +#include <linux/bpf_patch.h>
>> > #include <linux/net_tstamp.h>
>> >
>> > #define DRV_NAME "veth"
>> > @@ -1659,6 +1660,18 @@ static int veth_xdp(struct net_device *dev, struct netdev_bpf *xdp)
>> > }
>> > }
>> >
>> > +static void veth_unroll_kfunc(const struct bpf_prog *prog, u32 func_id,
>> > + struct bpf_patch *patch)
>> > +{
>> > + if (func_id == xdp_metadata_kfunc_id(XDP_METADATA_KFUNC_RX_TIMESTAMP_SUPPORTED)) {
>> > + /* return true; */
>> > + bpf_patch_append(patch, BPF_MOV64_IMM(BPF_REG_0, 1));
>> > + } else if (func_id == xdp_metadata_kfunc_id(XDP_METADATA_KFUNC_RX_TIMESTAMP)) {
>> > + /* return ktime_get_mono_fast_ns(); */
>> > + bpf_patch_append(patch, BPF_EMIT_CALL(ktime_get_mono_fast_ns));
>> > + }
>> > +}
>>
>> So these look reasonable enough, but would be good to see some examples
>> of kfunc implementations that don't just BPF_CALL to a kernel function
>> (with those helper wrappers we were discussing before).
>
> Let's maybe add them if/when needed as we add more metadata support?
> xdp_metadata_export_to_skb has an example, and rfc 1/2 have more
> examples, so it shouldn't be a problem to resurrect them back at some
> point?
Well, the reason I asked for them is that I think having to maintain the
BPF code generation in the drivers is probably the biggest drawback of
the kfunc approach, so it would be good to be relatively sure that we
can manage that complexity (via helpers) before we commit to this :)
-Toke
next prev parent reply other threads:[~2022-11-15 22:46 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-15 3:01 [xdp-hints] [PATCH bpf-next 00/11] xdp: hints via kfuncs Stanislav Fomichev
2022-11-15 3:02 ` [xdp-hints] [PATCH bpf-next 02/11] bpf: Introduce bpf_patch Stanislav Fomichev
2022-11-15 3:02 ` [xdp-hints] [PATCH bpf-next 03/11] bpf: Support inlined/unrolled kfuncs for xdp metadata Stanislav Fomichev
2022-11-15 16:16 ` [xdp-hints] " Toke Høiland-Jørgensen
2022-11-15 18:37 ` Stanislav Fomichev
2022-11-16 20:42 ` Jakub Kicinski
2022-11-16 20:53 ` Stanislav Fomichev
2022-11-15 3:02 ` [xdp-hints] [PATCH bpf-next 05/11] veth: Support rx timestamp metadata for xdp Stanislav Fomichev
2022-11-15 16:17 ` [xdp-hints] " Toke Høiland-Jørgensen
2022-11-15 18:37 ` Stanislav Fomichev
2022-11-15 22:46 ` Toke Høiland-Jørgensen [this message]
2022-11-16 4:09 ` Stanislav Fomichev
2022-11-16 6:38 ` John Fastabend
2022-11-16 7:47 ` Martin KaFai Lau
2022-11-16 10:08 ` Toke Høiland-Jørgensen
2022-11-16 18:20 ` Martin KaFai Lau
2022-11-16 19:03 ` John Fastabend
2022-11-16 20:50 ` Stanislav Fomichev
2022-11-16 23:47 ` John Fastabend
2022-11-17 0:19 ` Stanislav Fomichev
2022-11-17 2:17 ` Alexei Starovoitov
2022-11-17 2:53 ` Stanislav Fomichev
2022-11-17 2:59 ` Alexei Starovoitov
2022-11-17 4:18 ` Stanislav Fomichev
2022-11-17 6:55 ` John Fastabend
2022-11-17 17:51 ` Stanislav Fomichev
2022-11-17 19:47 ` John Fastabend
2022-11-17 20:17 ` Alexei Starovoitov
2022-11-17 11:32 ` Toke Høiland-Jørgensen
2022-11-17 16:59 ` Alexei Starovoitov
2022-11-17 17:52 ` Stanislav Fomichev
2022-11-17 23:46 ` Toke Høiland-Jørgensen
2022-11-18 0:02 ` Alexei Starovoitov
2022-11-18 0:29 ` Toke Høiland-Jørgensen
2022-11-17 10:27 ` Toke Høiland-Jørgensen
2022-11-15 3:02 ` [xdp-hints] [PATCH bpf-next 06/11] xdp: Carry over xdp metadata into skb context Stanislav Fomichev
2022-11-15 23:20 ` [xdp-hints] " Toke Høiland-Jørgensen
2022-11-16 3:49 ` Stanislav Fomichev
2022-11-16 9:30 ` Toke Høiland-Jørgensen
2022-11-16 4:40 ` kernel test robot
2022-11-16 7:04 ` Martin KaFai Lau
2022-11-16 9:48 ` Toke Høiland-Jørgensen
2022-11-16 20:51 ` Stanislav Fomichev
2022-11-16 20:51 ` Stanislav Fomichev
2022-11-16 8:22 ` kernel test robot
2022-11-16 9:03 ` kernel test robot
2022-11-16 13:46 ` kernel test robot
2022-11-16 21:12 ` Jakub Kicinski
2022-11-16 21:49 ` Martin KaFai Lau
2022-11-18 14:05 ` Jesper Dangaard Brouer
2022-11-18 18:18 ` Stanislav Fomichev
2022-11-19 12:31 ` Toke Høiland-Jørgensen
2022-11-21 17:53 ` Stanislav Fomichev
2022-11-21 18:47 ` Jakub Kicinski
2022-11-21 19:41 ` Stanislav Fomichev
2022-11-15 3:02 ` [xdp-hints] [PATCH bpf-next 07/11] selftests/bpf: Verify xdp_metadata xdp->af_xdp path Stanislav Fomichev
2022-11-15 3:02 ` [xdp-hints] [PATCH bpf-next 08/11] selftests/bpf: Verify xdp_metadata xdp->skb path Stanislav Fomichev
2022-11-15 3:02 ` [xdp-hints] [PATCH bpf-next 09/11] mlx4: Introduce mlx4_xdp_buff wrapper for xdp_buff Stanislav Fomichev
2022-11-15 3:02 ` [xdp-hints] [PATCH bpf-next 10/11] mxl4: Support rx timestamp metadata for xdp Stanislav Fomichev
2022-11-15 15:54 ` [xdp-hints] Re: [PATCH bpf-next 00/11] xdp: hints via kfuncs Toke Høiland-Jørgensen
2022-11-15 18:37 ` Stanislav Fomichev
2022-11-15 22:31 ` Toke Høiland-Jørgensen
2022-11-15 22:54 ` Alexei Starovoitov
2022-11-15 23:13 ` Toke Høiland-Jørgensen
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
List information: https://lists.xdp-project.net/postorius/lists/xdp-hints.xdp-project.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8735ajet05.fsf@toke.dk \
--to=toke@redhat.com \
--cc=alexandr.lobakin@intel.com \
--cc=anatoly.burakov@intel.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=brouer@redhat.com \
--cc=daniel@iogearbox.net \
--cc=dsahern@gmail.com \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=kuba@kernel.org \
--cc=magnus.karlsson@gmail.com \
--cc=martin.lau@linux.dev \
--cc=mtahhan@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=sdf@google.com \
--cc=song@kernel.org \
--cc=willemb@google.com \
--cc=xdp-hints@xdp-project.net \
--cc=yhs@fb.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