All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Sitnicki <jakub@cloudflare.com>
To: "Alexei Starovoitov" <alexei.starovoitov@gmail.com>
Cc: "Jakub Kicinski" <kuba@kernel.org>,
	 "Daniel Zahka" <daniel.zahka@gmail.com>,
	 <netdev@vger.kernel.org>,
	 "Kuniyuki Iwashima" <kuniyu@google.com>,
	 "Paolo Abeni" <pabeni@redhat.com>,
	 "Stanislav Fomichev" <sdf@fomichev.me>,  <bpf@vger.kernel.org>,
	<kernel-team@cloudflare.com>,
	 "Daniel Borkmann" <daniel@iogearbox.net>,
	"John Fastabend" <john.fastabend@gmail.com>,
	 "Andrii Nakryiko" <andrii@kernel.org>,
	 "Eduard Zingerman" <eddyz87@gmail.com>,
	 "Kumar Kartikeya Dwivedi" <memxor@gmail.com>,
	 "Martin KaFai Lau" <martin.lau@linux.dev>,
	 "Song Liu" <song@kernel.org>,
	 "Yonghong Song" <yonghong.song@linux.dev>,
	 "Jiri Olsa" <jolsa@kernel.org>,
	 "Emil Tsalapatis" <emil@etsalapatis.com>,
	 "David S. Miller" <davem@davemloft.net>,
	 "Eric Dumazet" <edumazet@google.com>,
	 "Simon Horman" <horms@kernel.org>,
	 "Jesper Dangaard Brouer" <hawk@kernel.org>,
	"Willem de Bruijn" <willemdebruijn.kernel@gmail.com>,
	 "Florian Westphal" <fw@strlen.de>,
	 "Jack Wang" <163wangjack@gmail.com>
Subject: Re: [PATCH net-next v2 03/14] bpf: Make BPF skb extension survive packet scrubbing
Date: Fri, 02 Oct 2026 14:37:52 +0200	[thread overview]
Message-ID: <87ik3kl1lr.fsf@cloudflare.com> (raw)
In-Reply-To: <DLSJ0UIY3DSY.3JWS6CS3TX0IP@gmail.com> (Alexei Starovoitov's message of "Wed, 30 Sep 2026 09:00:23 +0000")

On Wed, Sep 30, 2026 at 09:00 AM GMT, Alexei Starovoitov wrote:
> On Tue Sep 29, 2026 at 8:32 PM UTC, Jakub Sitnicki wrote:
>> Everything pushed to:
>>
>> https://github.com/jsitnicki/skb-metadata-bench/tree/main/profile
>
> looks like you had lockdep on, so all the data and conclusions
> likely do not correlate to production.
> Pls fix and remeasure everything.

Thanks. This makes much more sense now.

1) Lockdep was on. Fixed. Configs published to [1].

2) Switched from mpstat to bpf_stats since bpf-skb-ext cost was so low
now that it was drowning in the noise. skb extension teardown is not
accounted for.

3) With rhash, I noticed churn from auto-shrinking in map_update_elem
(can be seen in gtpchurn profile [2]). LLM suggested a one-line fix to
set min_size from map_extra hint. Benchmarks ran with this patch [3].

New results (prog runtime from bpf_stats in nsec):

 ~/bench $ just bpfstats
python3 tools/bpfstats.py --agg results-1 results-2 results-3
variant          prog              results-1  results-2  results-3    total mean ± spread
-------------------------------------------------------------------------------------------
ext-cnt          cnt_ingress            35.9       35.6       35.5      106.7 ± 2.2
                 cnt_egress             70.3       73.5       69.2

ext-ext          ext_write             199.3      198.9      203.0      263.8 ± 1.9
                 ext_read               63.1       64.1       63.2

gtp-cnt          cnt_ingress            34.4       34.3       34.6       94.6 ± 2.5
                 cnt_egress             59.9       58.1       62.7

gtp-gtp          gtp_write             531.0      555.9      567.2      920.9 ± 34.5
                 gtp_read               85.1       87.5       91.2
                 gtp_skb_free          267.1      283.9      293.9

gtp-gtpchurn     gtp_write             784.9      782.6      830.6     1190.8 ± 44.2
                 gtp_read               82.5       82.3       88.6
                 gtp_skb_free          297.5      294.7      328.7

gtp-gtplru       gtplru_write          394.9      391.9      394.5      542.8 ± 1.1
                 gtplru_read            48.2       49.4       48.9
                 gtplru_skb_free        99.9      100.4      100.5

gtp-gtp is with nelem_hint+min_size hint set.
gtp-gtpchurn is without it (map_extra=0).
perf reports and flamegraphs also updated [4].

[1] https://github.com/jsitnicki/skb-metadata-bench/tree/main/configs
[2] https://raw.githubusercontent.com/jsitnicki/skb-metadata-bench/refs/heads/main/profile/perf.gtp-gtpchurn.svg
[3] https://github.com/jsitnicki/skb-metadata-bench/blob/main/patches/rht-no-shrink-churn.patch
[4] https://github.com/jsitnicki/skb-metadata-bench/tree/main/profile

  reply	other threads:[~2026-10-02 12:37 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-10 14:02 [PATCH net-next v2 00/14] skb extension for BPF metadata Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 01/14] bpf: Introduce per-packet metadata storage for BPF programs Jakub Sitnicki
2026-09-11 10:19   ` Jiayuan Chen
2026-09-10 14:02 ` [PATCH net-next v2 02/14] bpf: Allow access to bpf_sock_ops_kern->skb Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 03/14] bpf: Make BPF skb extension survive packet scrubbing Jakub Sitnicki
2026-09-23 17:46   ` Daniel Zahka
2026-09-24 16:52     ` Jakub Sitnicki
2026-09-25  1:07       ` Alexei Starovoitov
2026-09-25 19:18         ` Jakub Kicinski
2026-09-25 19:51           ` Alexei Starovoitov
2026-09-25 20:20             ` Jakub Kicinski
2026-09-25 20:27               ` Alexei Starovoitov
2026-09-28 15:52                 ` Jakub Sitnicki
2026-09-28 16:14                   ` Alexei Starovoitov
2026-09-29 20:32                     ` Jakub Sitnicki
2026-09-30  9:00                       ` Alexei Starovoitov
2026-10-02 12:37                         ` Jakub Sitnicki [this message]
2026-09-25 12:03       ` Daniel Zahka
2026-09-25 15:24         ` Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 04/14] selftests/bpf: Add tests for bpf_dynptr_from_skb_ext Jakub Sitnicki
2026-09-11 15:09   ` sashiko-bot
2026-09-10 14:02 ` [PATCH net-next v2 05/14] selftests/bpf: Test skb_ext on cloned skbs Jakub Sitnicki
2026-09-11 15:09   ` sashiko-bot
2026-09-10 14:02 ` [PATCH net-next v2 06/14] selftests/bpf: Test skb_ext survival across veth and GRE Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 07/14] selftests/bpf: Test skb_ext read from cgroup_skb and sk_filter hooks Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 08/14] selftests/bpf: Test skb_ext read from sock_ops and LSM hooks Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 09/14] selftests/bpf: Test skb_ext read from kfree_skb tracepoint Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 10/14] selftests/bpf: Test skb_ext read from netfilter hook Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 11/14] selftests/bpf: Test skb_ext from LWT in, out, and xmit hooks Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 12/14] selftests/bpf: Test skb_ext read from seg6local End.BPF hook Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 13/14] selftests/bpf: Test skb_ext read from sk_skb stream verdict hook Jakub Sitnicki
2026-09-10 14:02 ` [PATCH net-next v2 14/14] selftests/bpf: Use non-trivial test payload in xdp_context tests Jakub Sitnicki
2026-09-10 15:56 ` [PATCH net-next v2 00/14] skb extension for BPF metadata Alexei Starovoitov
2026-09-11 11:33   ` Jakub Sitnicki
2026-09-12  3:32     ` Alexei Starovoitov

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=87ik3kl1lr.fsf@cloudflare.com \
    --to=jakub@cloudflare.com \
    --cc=163wangjack@gmail.com \
    --cc=alexei.starovoitov@gmail.com \
    --cc=andrii@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel.zahka@gmail.com \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=eddyz87@gmail.com \
    --cc=edumazet@google.com \
    --cc=emil@etsalapatis.com \
    --cc=fw@strlen.de \
    --cc=hawk@kernel.org \
    --cc=horms@kernel.org \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=kernel-team@cloudflare.com \
    --cc=kuba@kernel.org \
    --cc=kuniyu@google.com \
    --cc=martin.lau@linux.dev \
    --cc=memxor@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sdf@fomichev.me \
    --cc=song@kernel.org \
    --cc=willemdebruijn.kernel@gmail.com \
    --cc=yonghong.song@linux.dev \
    /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.