netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 net-next 0/4] af_unix: Random improvements for GC.
@ 2023-12-19  3:00 Kuniyuki Iwashima
  2023-12-19  3:00 ` [PATCH v4 net-next 1/4] af_unix: Do not use atomic ops for unix_sk(sk)->inflight Kuniyuki Iwashima
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Kuniyuki Iwashima @ 2023-12-19  3:00 UTC (permalink / raw)
  To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
  Cc: Ivan Babrou, Kuniyuki Iwashima, Kuniyuki Iwashima, netdev

If more than 16000 inflight AF_UNIX sockets exist on a host, each
sendmsg() will be forced to wait for unix_gc() even if a process
is not sending any FD.

This series tries not to impose such a penalty on sane users who
do not send AF_UNIX FDs or do not have inflight sockets more than
SCM_MAX_FD * 8.

Cleanup patches for commit 69db702c8387 ("io_uring/af_unix: disable
sending io_uring over sockets") will be posted later as noted in [0].

[0]: https://lore.kernel.org/netdev/c716c88321939156909cfa1bd8b0faaf1c804103.1701868795.git.asml.silence@gmail.com/


Changes:
  v4:
    * Rebase on the latest

  v3: https://lore.kernel.org/netdev/20231218075020.60826-1-kuniyu@amazon.com/
    * Patch 3
      * Reuse gc_in_progress flag.
      * Call flush_work() only when gc is queued or in progress.
    * Patch 4
      * Bump UNIX_INFLIGHT_SANE_USER to (SCM_MAX_FD * 8).

  v2: https://lore.kernel.org/netdev/20231123014747.66063-1-kuniyu@amazon.com/
    * Patch 4
      * Fix build error when CONFIG_UNIX=n

  v1: https://lore.kernel.org/netdev/20231122013629.28554-1-kuniyu@amazon.com/


Kuniyuki Iwashima (4):
  af_unix: Do not use atomic ops for unix_sk(sk)->inflight.
  af_unix: Return struct unix_sock from unix_get_socket().
  af_unix: Run GC on only one CPU.
  af_unix: Try to run GC async.

 include/linux/io_uring.h |  4 +-
 include/net/af_unix.h    |  6 +--
 include/net/scm.h        |  1 +
 io_uring/io_uring.c      |  5 ++-
 net/core/scm.c           |  5 +++
 net/unix/af_unix.c       | 10 +++--
 net/unix/garbage.c       | 83 +++++++++++++++++++++-------------------
 net/unix/scm.c           | 34 ++++++++--------
 8 files changed, 79 insertions(+), 69 deletions(-)

-- 
2.30.2


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

end of thread, other threads:[~2024-01-09  2:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-19  3:00 [PATCH v4 net-next 0/4] af_unix: Random improvements for GC Kuniyuki Iwashima
2023-12-19  3:00 ` [PATCH v4 net-next 1/4] af_unix: Do not use atomic ops for unix_sk(sk)->inflight Kuniyuki Iwashima
2023-12-19  3:01 ` [PATCH v4 net-next 2/4] af_unix: Return struct unix_sock from unix_get_socket() Kuniyuki Iwashima
2023-12-19  3:01 ` [PATCH v4 net-next 3/4] af_unix: Run GC on only one CPU Kuniyuki Iwashima
2023-12-19  3:01 ` [PATCH v4 net-next 4/4] af_unix: Try to run GC async Kuniyuki Iwashima
2024-01-02 23:29 ` [PATCH v4 net-next 0/4] af_unix: Random improvements for GC Jakub Kicinski
2024-01-09  2:01   ` Kuniyuki Iwashima

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