aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Glozar <tglozar@redhat.com>2023-06-30 11:19:04 +0200
committerJohn Kacur <jkacur@redhat.com>2023-07-25 09:38:46 -0400
commit2db552584b292d8a0d030c5d0e3a0a5cdc8af7cc (patch)
tree0a7cca104d491f2fee0c4118de7d0bdfbdc93c4a
parentcb7ba0c0db7631021341b7fa692c286fd9d33cd1 (diff)
downloadrteval-2db552584b292d8a0d030c5d0e3a0a5cdc8af7cc.tar.gz
rteval: Exclude isolcpus from kcompile by default
Allows correct calculation of make job count that does not include isolated CPUs, on which the loads won't be scheduled. Signed-off-by: Tomas Glozar <tglozar@redhat.com> Signed-off-by: John Kacur <jkacur@redhat.com>
-rw-r--r--rteval/modules/loads/kcompile.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py
index 9244246..316791e 100644
--- a/rteval/modules/loads/kcompile.py
+++ b/rteval/modules/loads/kcompile.py
@@ -37,6 +37,7 @@ from rteval.systopology import CpuList, SysTopology
expand_cpulist = CpuList.expand_cpulist
compress_cpulist = CpuList.compress_cpulist
+nonisolated_cpulist = CpuList.nonisolated_cpulist
DEFAULT_KERNEL_PREFIX = "linux-6.1"
@@ -55,17 +56,20 @@ class KBuildJob:
if not os.path.isdir(self.objdir):
os.mkdir(self.objdir)
+ # Exclude isolated CPUs if cpulist not set
+ cpus_available = len(nonisolated_cpulist(self.node.cpus.cpulist))
+
if os.path.exists('/usr/bin/numactl') and not cpulist:
# Use numactl
self.binder = f'numactl --cpunodebind {int(self.node)}'
- self.jobs = self.calc_jobs_per_cpu() * len(self.node)
+ self.jobs = self.calc_jobs_per_cpu() * cpus_available
elif cpulist:
# Use taskset
self.jobs = self.calc_jobs_per_cpu() * len(cpulist)
self.binder = f'taskset -c {compress_cpulist(cpulist)}'
else:
# Without numactl calculate number of jobs from the node
- self.jobs = self.calc_jobs_per_cpu() * len(self.node)
+ self.jobs = self.calc_jobs_per_cpu() * cpus_available
self.runcmd = f"make O={self.objdir} -C {self.kdir} -j{self.jobs}"
self.cleancmd = f"make O={self.objdir} -C {self.kdir} clean allmodconfig"