Page MenuHomeFreeBSD

tcp: use CALLOUT_TRYLOCK for the TCP callout
ClosedPublic

Authored by glebius on Jun 26 2024, 3:56 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Jan 25, 11:49 PM
Unknown Object (File)
Tue, Jan 21, 12:28 AM
Unknown Object (File)
Sat, Jan 18, 4:46 AM
Unknown Object (File)
Sun, Jan 12, 11:28 PM
Unknown Object (File)
Sat, Jan 11, 5:46 PM
Unknown Object (File)
Sat, Jan 11, 2:49 PM
Unknown Object (File)
Sat, Jan 11, 12:08 PM
Unknown Object (File)
Dec 7 2024, 3:52 AM
Subscribers

Details

Summary

This allows to remove the drop of the lock tcp_timer_enter(), which closes
a sophisticated but possible race that involves three threads. In case we
got a callout executing and two threads trying to close the connection,
e.g. and interrupt and a syscall, then lock yielding in tcp_timer_enter()
may transfer lock from one closing thread to the other closing thread,
instead of the callout.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 58362
Build 55250: arc lint + arc unit