]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
affinity: initialize CPU sets with online CPUs only
authorLukas Sismis <lsismis@oisf.net>
Wed, 25 Jun 2025 09:18:56 +0000 (11:18 +0200)
committerVictor Julien <victor@inliniac.net>
Fri, 27 Jun 2025 02:11:51 +0000 (04:11 +0200)
When no CPU set is explicitly defined, switch from
UtilCpuGetNumProcessorsConfigured() (which counts all existing CPU
cores, even offline ones) to UtilCpuGetNumProcessorsOnline() (only
the available cores).
If Suricata initializes more threads than online CPUs it oversubscribes
the system. As Suricata does not support any runtime live reconfiguration
Suricata initializes only as many cores as online CPU cores.

Ticket: 7790

src/util-affinity.c

index d037ea8de0482195a9cfe1c2e4420e63242feef5..84feb4d3913e13fc941e88ad104db135ea5629b1 100644 (file)
@@ -210,7 +210,7 @@ ThreadsAffinityType *GetOrAllocAffinityTypeForIfaceOfName(
 static void AffinitySetupInit(void)
 {
     int i, j;
-    int ncpu = UtilCpuGetNumProcessorsConfigured();
+    int ncpu = UtilCpuGetNumProcessorsOnline();
 
     SCLogDebug("Initialize CPU affinity setup");
     /* be conservative relatively to OS: use all cpus by default */