diff options
| author | Tejun Heo <[email protected]> | 2025-06-16 18:10:47 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-06-18 01:29:21 +0000 |
| commit | fd0406e5ca53b804353d4b1b60a980c13cbfbea3 (patch) | |
| tree | 0c607c5a0e26fc63260ee9c3ad71e1bbea7ac76e /net/ipv4/tcp.c | |
| parent | Merge branch 'ipmr-ip6mr-allow-mc-routing-locally-generated-mc-packets' (diff) | |
| download | kernel-fd0406e5ca53b804353d4b1b60a980c13cbfbea3.tar.gz kernel-fd0406e5ca53b804353d4b1b60a980c13cbfbea3.zip | |
net: tcp: tsq: Convert from tasklet to BH workqueue
The only generic interface to execute asynchronously in the BH context is
tasklet; however, it's marked deprecated and has some design flaws. To
replace tasklets, BH workqueue support was recently added. A BH workqueue
behaves similarly to regular workqueues except that the queued work items
are executed in the BH context.
This patch converts TCP Small Queues implementation from tasklet to BH
workqueue.
Semantically, this is an equivalent conversion and there shouldn't be any
user-visible behavior changes. While workqueue's queueing and execution
paths are a bit heavier than tasklet's, unless the work item is being queued
every packet, the difference hopefully shouldn't matter.
My experience with the networking stack is very limited and this patch
definitely needs attention from someone who actually understands networking.
Signed-off-by: Tejun Heo <[email protected]>
Reviewed-by: Jason Xing <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Cc: David Ahern <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/ipv4/tcp.c')
| -rw-r--r-- | net/ipv4/tcp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 27d3ef83ce7b..8a3c99246d2e 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -5242,6 +5242,6 @@ void __init tcp_init(void) tcp_v4_init(); tcp_metrics_init(); BUG_ON(tcp_register_congestion_control(&tcp_reno) != 0); - tcp_tasklet_init(); + tcp_tsq_work_init(); mptcp_init(); } |
