linux-yocto/net
Kuniyuki Iwashima fd86344823 af_unix: Try not to hold unix_gc_lock during accept().
Commit dcf70df204 ("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>
2024-04-16 13:50:57 +02:00
..
6lowpan net: fill in MODULE_DESCRIPTION()s for 6LoWPAN 2024-02-09 14:12:01 -08:00
9p 9p: Fix read/write debug statements to report server reply 2024-02-12 21:18:54 +09:00
802
8021q netlink: introduce type-checking attribute iteration 2024-03-29 15:06:02 -07:00
appletalk
atm ipv4: Set scope explicitly in ip_route_output(). 2024-04-08 13:20:51 +01:00
ax25 net: handle HAS_IOPORT dependencies 2024-04-08 11:56:56 +01:00
batman-adv Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-11 14:23:47 -07:00
bluetooth Bluetooth: l2cap: Don't double set the HCI_CONN_MGMT_CONNECTED bit 2024-04-10 15:10:16 -04:00
bpf bpf: Check return from set_memory_rox() 2024-03-18 14:18:47 -07:00
bridge ipv4: Set scope explicitly in ip_route_output(). 2024-04-08 13:20:51 +01:00
caif caif: Use UTILITY_NAME_LENGTH instead of hard-coding 16 2024-04-02 18:20:00 -07:00
can linux-can-next-for-6.9-20240220 2024-02-20 15:32:45 +01:00
ceph libceph: init the cursor when preparing sparse read in msgr2 2024-03-06 12:43:01 +01:00
core net: constify net_class 2024-04-15 10:46:01 +01:00
dcb
dccp tcp/dccp: do not care about families in inet_twsk_purge() 2024-04-01 21:27:58 -07:00
devlink devlink: Support setting max_io_eqs 2024-04-08 14:10:45 +01:00
dns_resolver
dsa net: dsa: convert dsa_user_phylink_fixed_state() to use dsa_phylink_to_port() 2024-04-15 10:48:41 +01:00
ethernet
ethtool net: ethtool: Allow passing a phy index for some commands 2024-04-06 18:25:14 +01:00
handshake net/handshake: Fix handshake_req_destroy_test1 2024-02-08 18:32:29 -08:00
hsr net: hsr: Use full string description when opening HSR network device 2024-03-29 10:42:21 +00:00
ieee802154 Merge tag 'ieee802154-for-net-next-2024-03-07' of git://git.kernel.org/pub/scm/linux/kernel/git/wpan/wpan-next 2024-03-08 20:35:33 -08:00
ife
ipv4 udp: Avoid call to compute_score on multiple sites 2024-04-15 11:59:58 +01:00
ipv6 udp: Avoid call to compute_score on multiple sites 2024-04-15 11:59:58 +01:00
iucv net/iucv: Avoid explicit cpumask var allocation on stack 2024-04-02 18:19:09 -07:00
kcm net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function 2024-03-11 09:53:22 +00:00
key net: fill in MODULE_DESCRIPTION()s for af_key 2024-02-09 14:12:01 -08:00
l2tp l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function 2024-03-11 09:53:22 +00:00
l3mdev
lapb
llc
mac80211 wireless-next patches for v6.10 2024-04-03 19:36:57 -07:00
mac802154 mac802154: fix llsec key resources release in mac802154_llsec_key_del 2024-03-06 21:01:26 +01:00
mctp Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-02-29 14:24:56 -08:00
mpls mpls: no longer hold RTNL in mpls_netconf_dump_devconf() 2024-04-11 19:38:37 -07:00
mptcp mptcp: add last time fields in mptcp_info 2024-04-11 08:19:54 -07:00
ncsi
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-04 18:01:07 -07:00
netlabel netlabel: remove impossible return value in netlbl_bitmap_walk 2024-02-28 19:37:34 -08:00
netlink netlink: create a new header for internal genetlink symbols 2024-04-01 21:44:34 -07:00
netrom netrom: Fix data-races around sysctl_net_busy_read 2024-03-07 10:36:58 +01:00
nfc net: nfc: remove inappropriate attrs check 2024-04-12 18:52:35 -07:00
nsh
openvswitch Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-04-11 14:23:47 -07:00
packet af_packet: avoid a false positive warning in packet_setsockopt() 2024-04-08 13:19:01 +01:00
phonet phonet/pep: fix racy skb_queue_empty() use 2024-02-22 09:05:50 +01:00
psample ip_tunnel: convert __be16 tunnel flags to bitmaps 2024-04-01 10:49:28 +01:00
qrtr
rds net/rds: fix possible cp null dereference 2024-03-29 12:04:09 -07:00
rfkill net: rfkill: gpio: Convert to platform remove callback returning void 2024-03-25 15:40:22 +01:00
rose
rxrpc net: add sk_wake_async_rcu() helper 2024-03-29 15:03:11 -07:00
sched net: sched: cls_api: fix slab-use-after-free in fl_dump_key 2024-04-10 08:28:26 +01:00
sctp net: add sk_wake_async_rcu() helper 2024-03-29 15:03:11 -07:00
smc net/smc: Avoid -Wflex-array-member-not-at-end warnings 2024-04-03 11:01:30 +01:00
strparser
sunrpc nfsd-6.9 fixes: 2024-04-06 09:37:50 -07:00
switchdev net: bridge: switchdev: Skip MDB replays of deferred events on offload 2024-02-16 09:36:37 +00:00
tipc tipc: remove redundant assignment to ret, simplify code 2024-04-12 19:07:31 -07:00
tls tls: remove redundant assignment to variable decrypted 2024-04-11 20:00:22 -07:00
unix af_unix: Try not to hold unix_gc_lock during accept(). 2024-04-16 13:50:57 +02:00
vmw_vsock vsock/virtio: fix packet delivery to tap device 2024-04-02 18:00:24 -07:00
wireless wireless-next patches for v6.10 2024-04-03 19:36:57 -07:00
x25 net/x25: fix incorrect parameter validation in the x25_getsockopt() function 2024-03-11 09:53:22 +00:00
xdp xsk: validate user input for XDP_{UMEM|COMPLETION}_FILL_RING 2024-04-05 22:47:22 -07:00
xfrm xfrm: Allow UDP encapsulation only in offload modes 2024-03-18 11:56:11 +01:00
compat.c
devres.c
Kconfig net: skbuff: generalize the skb->decrypted bit 2024-04-06 17:34:31 +01:00
Kconfig.debug
Makefile
socket.c net: remove {revc,send}msg_copy_msghdr() from exports 2024-03-14 16:48:53 -07:00
sysctl_net.c