NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/55729 CVS commit: src/sys/net



The following reply was made to PR kern/55729; it has been noted by GNATS.

From: "Taylor R Campbell" <riastradh%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/55729 CVS commit: src/sys/net
Date: Mon, 29 Jul 2024 02:33:58 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Mon Jul 29 02:33:58 UTC 2024
 
 Modified Files:
 	src/sys/net: if_wg.c
 
 Log Message:
 wg(4): No need for atomic access to wgs_time_established in tx/rx.
 
 This is stable while the session is visible to the tx/rx paths -- it
 is initialized before the session is exposed to tx/rx, and doesn't
 change until the session is no longer used by any tx/rx path and has
 been recycled.
 
 When I sprinkled atomic access to wgs_time_established in if_wg.c
 rev. 1.104, it was a vestige of an uncommitted draft that did the
 transition from INIT_PASSIVE to ESTABLISHED in the tx path itself, in
 an attempt to enable prompter tx on the new session as soon as it is
 established.  This turned out to be unnecessary, so I reverted most
 of it, but forgot that wgs_time_established no longer needed atomic
 treatment.
 
 We could go back to using time_t and time_uptime, now that there's no
 need to do atomic loads and stores on these quantities. But there's
 no point in 64-bit arithmetic when the time differences are all
 guaranteed bounded by a few minutes, so keeping it 32-bit is probably
 a slight performance improvement on 32-bit systems.
 
 (In contrast, wgs_time_last_data_sent is both written and read in the
 tx path, which may run in parallel on multiple CPUs, so it still
 requires the atomic treatment.)
 
 Tidying up for:
 
 PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
 PR kern/56252: wg(4) state machine has race conditions
 PR kern/58463: if_wg does not work when idle.
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.116 -r1.117 src/sys/net/if_wg.c
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.
 


Home | Main Index | Thread Index | Old Index