HomeFreeBSD

Currently, when tcp_input() receives a packet on a session that matches a

Description

Currently, when tcp_input() receives a packet on a session that matches a
TCPCB, it checks (so->so_options & SO_ACCEPTCONN) to determine whether or
not the socket is a listening socket. However, this causes the code to
access a different cacheline. If we first check if the socket is in the
LISTEN state, we can avoid accessing so->so_options when processing packets
received for ESTABLISHED sessions.

If INVARIANTS is defined, the code still needs to access both variables to
check that so->so_options is consistent with the state.

Reviewed by: gallatin
MFC after: 1 week
Sponsored by: Netflix

Details

Provenance
jtlAuthored on
Reviewer
gallatin
Parents
rS307082: In the TCP stack, the hhook(9) framework provides hooks for kernel modules
Branches
Unknown
Tags
Unknown