af_unix: Try not to hold unix_gc_lock during accept().
Commit dcf70df2 ("af_unix: Fix up unix_edge.successor for embryo socket.") added spin_lock(&unix_gc_lock) in accept() path, and it caused regression in a stress test as reported by kernel test robot. If the embryo socket is not part of the inflight graph, we need not hold the lock. To decide that in O(1) time and avoid the regression in the normal use case, 1. add a new stat unix_sk(sk)->scm_stat.nr_unix_fds 2. count the number of inflight AF_UNIX sockets in the receive queue under unix_state_lock() 3. move unix_update_edges() call under unix_state_lock() 4. avoid locking if nr_unix_fds is 0 in unix_update_edges() Reported-by:kernel test robot <oliver.sang@intel.com> Closes: https://lore.kernel.org/oe-lkp/202404101427.92a08551-oliver.sang@intel.com Signed-off-by:
Kuniyuki Iwashima <kuniyu@amazon.com> Link: https://lore.kernel.org/r/20240413021928.20946-1-kuniyu@amazon.com Signed-off-by:
Paolo Abeni <pabeni@redhat.com>
-
mentioned in commit 90357d1c
-
mentioned in commit f301ca1e
-
mentioned in commit f8deba0c
-
mentioned in commit ee7b6234
-
mentioned in commit 7c4fc96c
-
mentioned in commit 7d41ec4f
-
mentioned in commit 3bea431f
-
mentioned in commit 958677c3
-
mentioned in commit a74600c6
-
mentioned in commit 971f3d24
-
mentioned in commit 2cab8cd9
-
mentioned in commit d0c38a8e
-
mentioned in commit 4b80874c
-
mentioned in commit 80171b6f
-
mentioned in commit 70aebcec
-
mentioned in commit faa27aaa
-
mentioned in commit d3d077c2
-
mentioned in commit b86a6d17
-
mentioned in commit 45f502a3
-
mentioned in commit a1f6360e
-
mentioned in commit 50d12079
-
mentioned in commit 917a1250
-
mentioned in commit 04dee958
-
mentioned in commit 9ad91610
-
mentioned in commit 951e4547
-
mentioned in commit f9977b17
-
mentioned in commit 4b5bf4eb
-
mentioned in commit eecd71b3
-
mentioned in commit 36ff5620
-
mentioned in commit 7f1124bd
-
mentioned in commit 9c2e963f
-
mentioned in commit 1ece39eb
-
mentioned in commit cfababf4
-
mentioned in commit ef01075f
-
mentioned in commit f3f8d02e
-
mentioned in commit a1df7869
-
mentioned in commit 86e3b411
-
mentioned in commit 6ff5694a
-
mentioned in commit 6e8c3043
-
mentioned in commit 673aab11
-
mentioned in commit 206c2f4b
-
mentioned in commit bbdca1d2
-
mentioned in commit f9a2bd69
-
mentioned in commit 5f860fda
-
mentioned in commit 561fd8ad
-
mentioned in commit b31a5408
-
mentioned in commit 43cbbeb1
-
mentioned in commit ad3cbbd0
-
mentioned in commit a130d07d
-
mentioned in commit 95a397ac