bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next v3 0/5] sockmap: Fix reading with splice(2)
@ 2025-07-09 12:47 Vincent Whitchurch via B4 Relay
  2025-07-09 12:47 ` [PATCH bpf-next v3 1/5] net: Add splice_read to prot Vincent Whitchurch via B4 Relay
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Vincent Whitchurch via B4 Relay @ 2025-07-09 12:47 UTC (permalink / raw)
  To: John Fastabend, Jakub Sitnicki
  Cc: Kuniyuki Iwashima, Jakub Kicinski, netdev, bpf,
	Vincent Whitchurch

I noticed that if the verdict callback returns SK_PASS, using splice(2)
to read from a socket in a sockmap does not work since it never sees the
data queued on to it.  As far as I can see, this is not a regression but
just something that has never worked, but it does make sockmap unusable
if you can't guarantee that the programs using the socket will not use
splice(2).

This series attempts to fix it and add a test for it.

---
Changes in v3:
- Rebase on latest bpf-next/master
- Link to v2: https://lore.kernel.org/r/20250609-sockmap-splice-v2-0-9c50645cfa32@datadoghq.com

Changes in v2:
- Rebase on latest bpf-next/master
- Remove unnecessary change in inet_dgram_ops
- Remove ->splice_read NULL check in inet_splice_read()
- Use INDIRECT_CALL_1() in inet_splice_read()
- Include test case in default test suite in test_sockmap
- Link to v1: https://lore.kernel.org/r/20240606-sockmap-splice-v1-0-4820a2ab14b5@datadoghq.com

---
Vincent Whitchurch (5):
      net: Add splice_read to prot
      tcp_bpf: Fix reading with splice(2)
      selftests/bpf: sockmap: Exit with error on failure
      selftests/bpf: sockmap: Allow SK_PASS in verdict
      selftests/bpf: sockmap: Add splice + SK_PASS regression test

 include/net/inet_common.h                  |  3 +
 include/net/sock.h                         |  3 +
 net/ipv4/af_inet.c                         | 13 ++++-
 net/ipv4/tcp_bpf.c                         |  9 +++
 net/ipv4/tcp_ipv4.c                        |  1 +
 net/ipv6/af_inet6.c                        |  2 +-
 net/ipv6/tcp_ipv6.c                        |  1 +
 tools/testing/selftests/bpf/test_sockmap.c | 90 +++++++++++++++++++++++++++++-
 8 files changed, 118 insertions(+), 4 deletions(-)
---
base-commit: ad97cb2ed06a6ba9025fd8bd14fa24369550cbb5
change-id: 20240606-sockmap-splice-d371ac07d7b4

Best regards,
-- 
Vincent Whitchurch <vincent.whitchurch@datadoghq.com>



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2025-07-22  3:33 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-09 12:47 [PATCH bpf-next v3 0/5] sockmap: Fix reading with splice(2) Vincent Whitchurch via B4 Relay
2025-07-09 12:47 ` [PATCH bpf-next v3 1/5] net: Add splice_read to prot Vincent Whitchurch via B4 Relay
2025-07-11 17:27   ` John Fastabend
2025-07-11 18:48     ` Kuniyuki Iwashima
2025-07-11 18:52       ` Kuniyuki Iwashima
2025-07-09 12:47 ` [PATCH bpf-next v3 2/5] tcp_bpf: Fix reading with splice(2) Vincent Whitchurch via B4 Relay
2025-07-09 12:47 ` [PATCH bpf-next v3 3/5] selftests/bpf: sockmap: Exit with error on failure Vincent Whitchurch via B4 Relay
2025-07-09 12:48 ` [PATCH bpf-next v3 4/5] selftests/bpf: sockmap: Allow SK_PASS in verdict Vincent Whitchurch via B4 Relay
2025-07-09 12:48 ` [PATCH bpf-next v3 5/5] selftests/bpf: sockmap: Add splice + SK_PASS regression test Vincent Whitchurch via B4 Relay
2025-07-11 15:57 ` [PATCH bpf-next v3 0/5] sockmap: Fix reading with splice(2) John Fastabend
2025-07-11 23:09 ` Jakub Kicinski
2025-07-22  3:33   ` John Fastabend

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).