From 2c445bcb04d2d5d3537b31ac93007b03f26695f9 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Tue, 4 Jun 2019 09:12:19 +0200 Subject: erts: Randomize valgrind taskset CPU When running multiple valgrinds on the same machine we want to attempt to make sure that they do not end up on the same core. --- erts/etc/unix/cerl.src | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/erts/etc/unix/cerl.src b/erts/etc/unix/cerl.src index 710a7a9ef6..59de9bdec8 100644 --- a/erts/etc/unix/cerl.src +++ b/erts/etc/unix/cerl.src @@ -312,8 +312,11 @@ if [ "x$GDB" = "x" ]; then # on multiple cores (especially with async threads). Valgrind only run one pthread # at a time anyway so there is no point letting it utilize more than one core. # Use $sched_arg to force all schedulers online to emulate multicore. - taskset1="taskset 1" ncpu=`cat /proc/cpuinfo | grep -w processor | wc -l` + # Choose a random core in order to not collide with any other valgrind + # run on the same machine. + taskset1=$((1 << (`shuf -i 1-$ncpu -n 1` - 1) )) + taskset1="taskset $taskset1" sched_arg="-S$ncpu:$ncpu" else taskset1= -- cgit v1.2.3