CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2024/08/12 05:25:27
Modified files:
sys/kern : uipc_domain.c
sys/netinet : igmp.c
sys/netinet6 : icmp6.c mld6.c
Log message:
Run network protocol timer without kernel lock.
Mark slow and fast protocol timeouts as MP safe. This means they
run on a spearate thread without holding the kernel lock.
IGMP and MLD6 cannot run in parallel, they use exclusive net lock
to protect themselves. As a performance optimization global variables
are used to skip igmp_fasttimo() and mld6_fasttimeo() if no multicast
is active. These global variables use atomic operations and memory
barriers to work lockless.
IPv6 fragment timeout protects itself with a mutex.
TCP timers also run without kernel lock now. The whole TCP stack
holds exclusive net lock, so additional kernel lock is useless.
OK mvs@