linux/net/rxrpc
Eric Dumazet 1abe267f17 net: add sk_wake_async_rcu() helper
While looking at UDP receive performance, I saw sk_wake_async()
was no longer inlined.

This matters at least on AMD Zen1-4 platforms (see SRSO)

This might be because rcu_read_lock() and rcu_read_unlock()
are no longer nops in recent kernels ?

Add sk_wake_async_rcu() variant, which must be called from
contexts already holding rcu lock.

As SOCK_FASYNC is deprecated in modern days, use unlikely()
to give a hint to the compiler.

sk_wake_async_rcu() is properly inlined from
__udp_enqueue_schedule_skb() and sock_def_readable().

Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20240328144032.1864988-5-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-03-29 15:03:11 -07:00
..
af_rxrpc.c net: add sk_wake_async_rcu() helper 2024-03-29 15:03:11 -07:00
ar-internal.h rxrpc: Extract useful fields from a received ACK to skb priv data 2024-03-05 23:35:26 +00:00
call_accept.c rxrpc: Fix trace string 2023-01-30 14:13:29 +00:00
call_event.c rxrpc: Extract useful fields from a received ACK to skb priv data 2024-03-05 23:35:26 +00:00
call_object.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
call_state.c rxrpc: Move client call connection to the I/O thread 2023-01-06 09:43:33 +00:00
conn_client.c rxrpc: Strip barriers and atomics off of timer tracking 2024-02-29 15:49:57 +00:00
conn_event.c rxrpc: Fix the names of the fields in the ACK trailer struct 2024-02-29 15:49:57 +00:00
conn_object.c rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags 2024-03-05 23:31:43 +00:00
conn_service.c rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock() 2023-12-24 15:22:49 +00:00
input.c rxrpc: Extract useful fields from a received ACK to skb priv data 2024-03-05 23:35:26 +00:00
insecure.c rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags 2024-03-05 23:31:43 +00:00
io_thread.c rxrpc: Extract useful fields from a received ACK to skb priv data 2024-03-05 23:35:26 +00:00
Kconfig rxrpc: Allow a delay to be injected into packet reception 2023-01-31 16:38:09 +00:00
key.c rxrpc: Fix error when reading rxrpc tokens 2023-04-23 13:38:28 +01:00
local_event.c rxrpc: Truncate UTS_RELEASE for rxrpc version 2023-05-30 10:01:06 +02:00
local_object.c rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags 2024-03-05 23:31:43 +00:00
Makefile rxrpc: Split out the call state changing functions into their own file 2023-01-06 09:43:32 +00:00
misc.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
net_ns.c rxrpc: Create a procfile to display outstanding client conn bundles 2023-12-24 15:22:56 +00:00
output.c rxrpc: Record probes after transmission and reduce number of time-gets 2024-03-05 23:35:25 +00:00
peer_event.c rxrpc: Fix locking issues in rxrpc_put_peer_locked() 2022-12-19 09:51:31 +00:00
peer_object.c rxrpc, afs: Allow afs to pin rxrpc_peer objects 2023-12-24 15:22:50 +00:00
proc.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
protocol.h rxrpc: Fix the names of the fields in the ACK trailer struct 2024-02-29 15:49:57 +00:00
recvmsg.c rxrpc: Fix overproduction of wakeups to recvmsg() 2023-02-20 08:33:25 +01:00
rtt.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
rxkad.c rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags 2024-03-05 23:31:43 +00:00
rxperf.c rxrpc: Fix potential race in error handling in afs_make_call() 2023-04-22 15:16:39 +01:00
security.c rxrpc: Fix incoming call setup race 2023-01-07 09:30:26 +00:00
sendmsg.c rxrpc: Fix error check on ->alloc_txbuf() 2024-03-14 13:09:53 +01:00
server_key.c rxrpc: Implement an in-kernel rxperf server for testing purposes 2022-12-01 13:36:37 +00:00
skbuff.c rxrpc: Use consume_skb() rather than kfree_skb_reason() 2023-02-07 23:11:20 +00:00
sysctl.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
txbuf.c rxrpc: Fix use of changed alignment param to page_frag_alloc_align() 2024-03-14 13:09:52 +01:00
utils.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00