public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
* [PATCH 00/11] tcp_splice: Better exploit symmetry between sides of connection
@ 2023-10-12  1:51 David Gibson
  2023-10-12  1:51 ` [PATCH 01/11] tcp_splice: Remove redundant tcp_splice_epoll_ctl() David Gibson
                   ` (10 more replies)
  0 siblings, 11 replies; 23+ messages in thread
From: David Gibson @ 2023-10-12  1:51 UTC (permalink / raw)
  To: passt-dev, Stefano Brivio; +Cc: David Gibson

For spliced connections, both "sides" are sockets, and for many
purposes how we deal with each side is symmetric.  Currently, however,
we track the information for each side in independent fields in the
structure, meaning we can't easily exploit that symmetry.

This makes a number of reorganizations of the tcp splice code so that
we can explot that symmetry to reduce code size.  This will have some
additional advantages when we come to integrate with the in-progress
unified flow table.

Based on top of the interface identifiers and automatic forwarding
cleanup series.

David Gibson (11):
  tcp_splice: Remove redundant tcp_splice_epoll_ctl()
  tcp_splice: Correct error handling in tcp_splice_epoll_ctl()
  tcp_splice: Don't handle EPOLL_CTL_DEL as part of
    tcp_splice_epoll_ctl()
  tcp_splice: Remove unnecessary forward declaration
  tcp_splice: Avoid awkward temporaries in tcp_splice_epoll_ctl()
  tcp_splice: Don't pool pipes in pairs
  tcp_splice: Rename sides of connection from a/b to 0/1
  tcp_splice: Exploit side symmetry in tcp_splice_timer()
  tcp_splice: Exploit side symmetry in tcp_splice_connect_finish()
  tcp_splice: Exploit side symmetry in tcp_splice_destroy()
  tcp_splice: Simplify selection of socket and pipe sides in socket
    handler

 tcp_conn.h   |  45 +++---
 tcp_splice.c | 389 +++++++++++++++++++++------------------------------
 2 files changed, 179 insertions(+), 255 deletions(-)

-- 
2.41.0


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

end of thread, other threads:[~2023-11-06 13:22 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-12  1:51 [PATCH 00/11] tcp_splice: Better exploit symmetry between sides of connection David Gibson
2023-10-12  1:51 ` [PATCH 01/11] tcp_splice: Remove redundant tcp_splice_epoll_ctl() David Gibson
2023-10-12  1:51 ` [PATCH 02/11] tcp_splice: Correct error handling in tcp_splice_epoll_ctl() David Gibson
2023-10-12  1:51 ` [PATCH 03/11] tcp_splice: Don't handle EPOLL_CTL_DEL as part of tcp_splice_epoll_ctl() David Gibson
2023-11-03 16:20   ` Stefano Brivio
2023-11-04  5:56     ` David Gibson
2023-10-12  1:51 ` [PATCH 04/11] tcp_splice: Remove unnecessary forward declaration David Gibson
2023-10-12  1:51 ` [PATCH 05/11] tcp_splice: Avoid awkward temporaries in tcp_splice_epoll_ctl() David Gibson
2023-11-03 16:21   ` Stefano Brivio
2023-11-04  5:58     ` David Gibson
2023-10-12  1:51 ` [PATCH 06/11] tcp_splice: Don't pool pipes in pairs David Gibson
2023-10-12  1:51 ` [PATCH 07/11] tcp_splice: Rename sides of connection from a/b to 0/1 David Gibson
2023-10-12  1:51 ` [PATCH 08/11] tcp_splice: Exploit side symmetry in tcp_splice_timer() David Gibson
2023-11-03 16:21   ` Stefano Brivio
2023-11-04  5:59     ` David Gibson
2023-10-12  1:51 ` [PATCH 09/11] tcp_splice: Exploit side symmetry in tcp_splice_connect_finish() David Gibson
2023-10-12  1:51 ` [PATCH 10/11] tcp_splice: Exploit side symmetry in tcp_splice_destroy() David Gibson
2023-11-03 16:22   ` Stefano Brivio
2023-11-06  2:39     ` David Gibson
2023-11-06 13:21       ` Stefano Brivio
2023-10-12  1:51 ` [PATCH 11/11] tcp_splice: Simplify selection of socket and pipe sides in socket handler David Gibson
2023-11-03 16:21   ` Stefano Brivio
2023-11-04  6:02     ` David Gibson

Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

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 IMAP folder(s).