From: Jakub Kicinski <kuba@kernel.org>
To: Jesper Dangaard Brouer <hawk@kernel.org>
Cc: Martin KaFai Lau <martin.lau@linux.dev>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Stanislav Fomichev <stfomichev@gmail.com>,
bpf@vger.kernel.org, netdev@vger.kernel.org,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <borkmann@iogearbox.net>,
Eric Dumazet <eric.dumazet@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Paolo Abeni <pabeni@redhat.com>,
sdf@fomichev.me, kernel-team@cloudflare.com,
arthur@arthurfabre.com, jakub@cloudflare.com,
Jesse Brandeburg <jbrandeburg@cloudflare.com>,
Andrew Rzeznik <arzeznik@cloudflare.com>
Subject: Re: [PATCH bpf-next V2 0/7] xdp: Allow BPF to set RX hints for XDP_REDIRECTed packets
Date: Fri, 1 Aug 2025 13:38:03 -0700 [thread overview]
Message-ID: <20250801133803.7570a6fd@kernel.org> (raw)
In-Reply-To: <21f4ee22-84f0-4d5e-8630-9a889ca11e31@kernel.org>
On Thu, 31 Jul 2025 18:27:07 +0200 Jesper Dangaard Brouer wrote:
> > iirc, a xdp prog can be attached to a cpumap. The skb can be created by
> > that xdp prog running on the remote cpu. It should be like a xdp prog
> > returning a XDP_PASS + an optional skb. The xdp prog can set some fields
> > in the skb. Other than setting fields in the skb, something else may be
> > also possible in the future, e.g. look up sk, earlier demux ...etc.
>
> I have strong reservations about having the BPF program itself trigger
> the SKB allocation. I believe this would fundamentally break the
> performance model that makes cpumap redirect so effective.
See, I have similar concerns about growing struct xdp_frame.
That's why the guiding principle for me would be to make sure that
the features we add, beyond "classic XDP" as needed by DDoS, are
entirely optional. And if we include the goal of moving skb allocation
out of the driver to the xdp_frame growth, the drivers will sooner or
later unconditionally populate the xdp_frame. Decreasing performance
of "classic XDP"?
> The key to XDP's high performance lies in processing a bulk of
> xdp_frames in a tight loop to amortize costs. The existing cpumap code
> on the remote CPU is already highly optimized for this: it performs bulk
> allocation of SKBs and uses careful prefetching to hide the memory
> latency. Allowing a BPF program to sometimes trigger a heavyweight SKB
> alloc+init (4 cache-line misses) would bypass all these existing
> optimizations. It would introduce significant jitter into the pipeline
> and disrupt the entire bulk-processing model we rely on for performance.
>
> This performance is not just theoretical;
Somewhat off-topic for the architecture, I think, but do you happen
to have any real life data for that? IIRC the "listification" was a
moderate success for the skb path.. Or am I misreading and you have
other benefits of a tight processing loop in mind?
next prev parent reply other threads:[~2025-08-01 20:38 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-02 14:58 [PATCH bpf-next V2 0/7] xdp: Allow BPF to set RX hints for XDP_REDIRECTed packets Jesper Dangaard Brouer
2025-07-02 14:58 ` [PATCH bpf-next V2 1/7] net: xdp: Add xdp_rx_meta structure Jesper Dangaard Brouer
2025-07-17 9:19 ` Jakub Sitnicki
2025-07-17 14:40 ` Jesper Dangaard Brouer
2025-07-18 10:33 ` Jakub Sitnicki
2025-07-02 14:58 ` [PATCH bpf-next V2 2/7] selftests/bpf: Adjust test for maximum packet size in xdp_do_redirect Jesper Dangaard Brouer
2025-07-02 14:58 ` [PATCH bpf-next V2 3/7] net: xdp: Add kfuncs to store hw metadata in xdp_buff Jesper Dangaard Brouer
2025-07-03 11:41 ` Jesper Dangaard Brouer
2025-07-03 12:26 ` Lorenzo Bianconi
2025-07-02 14:58 ` [PATCH bpf-next V2 4/7] net: xdp: Set skb hw metadata from xdp_frame Jesper Dangaard Brouer
2025-07-02 14:58 ` [PATCH bpf-next V2 5/7] net: veth: Read xdp metadata from rx_meta struct if available Jesper Dangaard Brouer
2025-07-17 12:11 ` Jakub Sitnicki
2025-07-02 14:58 ` [PATCH bpf-next V2 6/7] bpf: selftests: Add rx_meta store kfuncs selftest Jesper Dangaard Brouer
2025-07-23 9:24 ` Bouska, Zdenek
2025-07-02 14:58 ` [PATCH bpf-next V2 7/7] net: xdp: update documentation for xdp-rx-metadata.rst Jesper Dangaard Brouer
2025-07-02 16:05 ` [PATCH bpf-next V2 0/7] xdp: Allow BPF to set RX hints for XDP_REDIRECTed packets Stanislav Fomichev
2025-07-03 11:17 ` Jesper Dangaard Brouer
2025-07-07 14:40 ` Stanislav Fomichev
2025-07-09 9:31 ` Lorenzo Bianconi
2025-07-11 16:04 ` Stanislav Fomichev
2025-07-16 11:17 ` Lorenzo Bianconi
2025-07-16 21:20 ` Jakub Kicinski
2025-07-17 13:08 ` Jesper Dangaard Brouer
2025-07-18 1:25 ` Jakub Kicinski
2025-07-18 10:56 ` Jesper Dangaard Brouer
2025-07-22 1:13 ` Jakub Kicinski
2025-07-28 10:53 ` Lorenzo Bianconi
2025-07-28 16:29 ` Jakub Kicinski
2025-07-29 11:15 ` Jesper Dangaard Brouer
2025-07-29 19:47 ` Martin KaFai Lau
2025-07-31 16:27 ` Jesper Dangaard Brouer
2025-08-01 20:38 ` Jakub Kicinski [this message]
2025-08-04 13:18 ` Jesper Dangaard Brouer
2025-08-06 0:28 ` Jakub Kicinski
2025-08-07 18:26 ` Jesper Dangaard Brouer
2025-08-06 1:24 ` Martin KaFai Lau
2025-08-07 19:07 ` Jesper Dangaard Brouer
2025-08-13 2:59 ` Martin KaFai Lau
2025-07-31 21:18 ` Lorenzo Bianconi
2025-08-01 20:40 ` Jakub Kicinski
2025-08-05 13:18 ` Lorenzo Bianconi
2025-08-05 23:54 ` Jakub Kicinski
2025-07-18 9:55 ` Lorenzo Bianconi
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=20250801133803.7570a6fd@kernel.org \
--to=kuba@kernel.org \
--cc=arthur@arthurfabre.com \
--cc=arzeznik@cloudflare.com \
--cc=ast@kernel.org \
--cc=borkmann@iogearbox.net \
--cc=bpf@vger.kernel.org \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=hawk@kernel.org \
--cc=jakub@cloudflare.com \
--cc=jbrandeburg@cloudflare.com \
--cc=kernel-team@cloudflare.com \
--cc=lorenzo@kernel.org \
--cc=martin.lau@linux.dev \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sdf@fomichev.me \
--cc=stfomichev@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.