diff options
author | Lukas Larsson <[email protected]> | 2019-06-04 09:12:19 +0200 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2019-06-27 16:27:19 +0200 |
commit | 2c445bcb04d2d5d3537b31ac93007b03f26695f9 (patch) | |
tree | 2080b224ee366a6d58391532a0110071f8f13a96 | |
parent | a4752223c850305a2870a82eeb043391c372eec9 (diff) | |
download | otp-2c445bcb04d2d5d3537b31ac93007b03f26695f9.tar.gz otp-2c445bcb04d2d5d3537b31ac93007b03f26695f9.tar.bz2 otp-2c445bcb04d2d5d3537b31ac93007b03f26695f9.zip |
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.
-rw-r--r-- | erts/etc/unix/cerl.src | 5 |
1 files changed, 4 insertions, 1 deletions
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= |