public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
* [PATCH v3 00/13] Clean up to tap errors and epoll dispatch
@ 2023-08-11  5:12 David Gibson
  2023-08-11  5:12 ` [PATCH v3 01/13] tap: Clean up tap reset path David Gibson
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: David Gibson @ 2023-08-11  5:12 UTC (permalink / raw)
  To: passt-dev, Stefano Brivio; +Cc: David Gibson

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 v2:
 * Removed a (pre-existing) redundant close() and EPOLL_CTL_DEL in one
   of the tap reset paths
 * Fixed incorrect parameter to trace() message

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        | 138 +++++++++++++++++++++++++--------------------------
 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(+), 261 deletions(-)

-- 
2.41.0


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

end of thread, other threads:[~2023-08-13 16:31 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-11  5:12 [PATCH v3 00/13] Clean up to tap errors and epoll dispatch David Gibson
2023-08-11  5:12 ` [PATCH v3 01/13] tap: Clean up tap reset path David Gibson
2023-08-11  5:12 ` [PATCH v3 02/13] tap: Clean up behaviour for errors on listening Unix socket David Gibson
2023-08-11  5:12 ` [PATCH v3 03/13] tap: Fold reset handling into tap_handler_pasta() David Gibson
2023-08-11  5:12 ` [PATCH v3 04/13] tap: Fold reset handling into tap_handler_passt() David Gibson
2023-08-11  5:12 ` [PATCH v3 05/13] epoll: Generalize epoll_ref to cover things other than sockets David Gibson
2023-08-11  5:12 ` [PATCH v3 06/13] epoll: Always use epoll_ref for the epoll data variable David Gibson
2023-08-11  5:12 ` [PATCH v3 07/13] epoll: Fold sock_handler into general switch on epoll event fd David Gibson
2023-08-11  5:12 ` [PATCH v3 08/13] epoll: Split handling of ICMP and ICMPv6 sockets David Gibson
2023-08-11  5:12 ` [PATCH v3 09/13] epoll: Tiny cleanup to udp_sock_handler() David Gibson
2023-08-11  5:12 ` [PATCH v3 10/13] epoll: Split handling of TCP timerfds into its own handler function David Gibson
2023-08-11  5:12 ` [PATCH v3 11/13] epoll: Split handling of listening TCP sockets into their own handler David Gibson
2023-08-11  5:12 ` [PATCH v3 12/13] epoll: Split listening Unix domain socket into its own type David Gibson
2023-08-11  5:12 ` [PATCH v3 13/13] epoll: Use different epoll types for passt and pasta tap fds David Gibson
2023-08-13 16:31 ` [PATCH v3 00/13] Clean up to tap errors and epoll dispatch Stefano Brivio

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).