Revert "tun: default pin_threads off"

This reverts commit fcf59343bd66dd3c879c8293c1429e95d9fd3ee2.
This commit is contained in:
JackDoan
2026-07-27 16:03:53 -05:00
parent 3803146bc9
commit b7d06615c0
3 changed files with 5 additions and 6 deletions
+2 -3
View File
@@ -267,9 +267,8 @@ tun:
# Linux only. pin_threads pins each tun reader/encrypt OS thread to a single CPU. This keeps every goroutine's
# batched sends flowing through one XPS-selected NIC TX ring, so packets within a flow stay ordered on the wire
# instead of being sprayed across multiple TX rings and reordered. Off by default; pinning takes CPUs away from
# the scheduler, which can hurt hosts that share cores with other workloads. Not reloadable.
#pin_threads: false
# instead of being sprayed across multiple TX rings and reordered. Not reloadable.
#pin_threads: true
# Linux only. cpu_affinity overrides which CPUs the tun reader threads pin to: a list of CPU IDs, one per routine
# (see the top-level `routines` setting). Lists shorter than `routines` are modulo-cycled across the queues; extra
+2 -2
View File
@@ -59,7 +59,7 @@ type InterfaceConfig struct {
// pin-to-(i % NumCPU) behavior. Only consulted when PinThreads is true.
CpuAffinity []int
// PinThreads controls whether each TUN reader OS thread is pinned to a
// single CPU (via tun.pin_threads, default false). Pinning keeps each
// single CPU (via tun.pin_threads, default true). Pinning keeps each
// goroutine's sendmmsg on one XPS-selected NIC TX ring so per-flow
// packets stay ordered on the wire.
PinThreads bool
@@ -94,7 +94,7 @@ type Interface struct {
// Only consulted when pinThreads is true.
cpuAffinity []int
// pinThreads controls whether listenIn pins each TUN reader OS thread to
// a CPU at all (tun.pin_threads, default false). When false, threads are
// a CPU at all (tun.pin_threads, default true). When false, threads are
// left free to migrate as on stock nebula.
pinThreads bool
// ecnEnabled gates RFC 6040 underlay ECN propagation. When true,
+1 -1
View File
@@ -236,7 +236,7 @@ func Main(c *config.C, configTest bool, buildVersion string, l *slog.Logger, dev
punchy: punchy,
ConntrackCacheTimeout: conntrackCacheTimeout,
CpuAffinity: parseCpuAffinity(c, l, routines),
PinThreads: c.GetBool("tun.pin_threads", false),
PinThreads: c.GetBool("tun.pin_threads", true),
l: l,
}