From: David Gibson <david@gibson.dropbear.id.au>
To: passt-dev@passt.top, Stefano Brivio <sbrivio@redhat.com>
Cc: David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCH v2 00/13] Clean up to tap errors and epoll dispatch
Date: Thu, 10 Aug 2023 12:33:02 +1000 [thread overview]
Message-ID: <20230810023315.684784-1-david@gibson.dropbear.id.au> (raw)
Getting from an epoll event to the relevant handler function is
currently several levels of functions and tests. This series
simplifies this to be pretty close to a single switch on a value in
the epoll ref dispatching directly to the appropriate handler.
Doing this requires some preliminary cleaning up of the handling of
errors or disconnects on the tap device.
Changes since v1:
* Give listening TCP sockets their own reference type
* Fold "tap reset" series into this one
Changes since v2 of tap reset series:
* More thorough cleanup of handling error events on the listening
Unix socket.
Changes since v1 of the tap reset series:
* Two extra patches that further clean up the reset path
David Gibson (13):
tap: Clean up tap reset path
tap: Clean up behaviour for errors on listening Unix socket
tap: Fold reset handling into tap_handler_pasta()
tap: Fold reset handling into tap_handler_passt()
epoll: Generalize epoll_ref to cover things other than sockets
epoll: Always use epoll_ref for the epoll data variable
epoll: Fold sock_handler into general switch on epoll event fd
epoll: Split handling of ICMP and ICMPv6 sockets
epoll: Tiny cleanup to udp_sock_handler()
epoll: Split handling of TCP timerfds into its own handler function
epoll: Split handling of listening TCP sockets into their own handler
epoll: Split listening Unix domain socket into its own type
epoll: Use different epoll types for passt and pasta tap fds
icmp.c | 118 +++++++++++++++++++++++++--------------------
icmp.h | 9 ++--
passt.c | 90 ++++++++++++++++++++--------------
passt.h | 56 +++++++++++++++++-----
pasta.c | 8 +++-
tap.c | 133 ++++++++++++++++++++++++++-------------------------
tap.h | 7 ++-
tcp.c | 84 ++++++++++++++------------------
tcp.h | 28 +++++++----
tcp_conn.h | 4 +-
tcp_splice.c | 8 ++--
tcp_splice.h | 2 +-
udp.c | 16 +++----
util.c | 27 ++++++++---
14 files changed, 334 insertions(+), 256 deletions(-)
--
2.41.0
next reply other threads:[~2023-08-10 2:33 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-10 2:33 David Gibson [this message]
2023-08-10 2:33 ` [PATCH v2 01/13] tap: Clean up tap reset path David Gibson
2023-08-10 2:33 ` [PATCH v2 02/13] tap: Clean up behaviour for errors on listening Unix socket David Gibson
2023-08-10 2:33 ` [PATCH v2 03/13] tap: Fold reset handling into tap_handler_pasta() David Gibson
2023-08-10 2:33 ` [PATCH v2 04/13] tap: Fold reset handling into tap_handler_passt() David Gibson
2023-08-10 19:49 ` Stefano Brivio
2023-08-11 3:07 ` David Gibson
2023-08-10 2:33 ` [PATCH v2 05/13] epoll: Generalize epoll_ref to cover things other than sockets David Gibson
2023-08-10 2:33 ` [PATCH v2 06/13] epoll: Always use epoll_ref for the epoll data variable David Gibson
2023-08-10 2:33 ` [PATCH v2 07/13] epoll: Fold sock_handler into general switch on epoll event fd David Gibson
2023-08-10 19:49 ` Stefano Brivio
2023-08-11 3:11 ` David Gibson
2023-08-10 2:33 ` [PATCH v2 08/13] epoll: Split handling of ICMP and ICMPv6 sockets David Gibson
2023-08-10 2:33 ` [PATCH v2 09/13] epoll: Tiny cleanup to udp_sock_handler() David Gibson
2023-08-10 2:33 ` [PATCH v2 10/13] epoll: Split handling of TCP timerfds into its own handler function David Gibson
2023-08-10 2:33 ` [PATCH v2 11/13] epoll: Split handling of listening TCP sockets into their own handler David Gibson
2023-08-10 2:33 ` [PATCH v2 12/13] epoll: Split listening Unix domain socket into its own type David Gibson
2023-08-10 2:33 ` [PATCH v2 13/13] epoll: Use different epoll types for passt and pasta tap fds David Gibson
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=20230810023315.684784-1-david@gibson.dropbear.id.au \
--to=david@gibson.dropbear.id.au \
--cc=passt-dev@passt.top \
--cc=sbrivio@redhat.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.
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).