From 30ca6df256640db01b561acb931e989e03f96310 Mon Sep 17 00:00:00 2001 From: Peter Cai <peter.cai@uwaterloo.ca> Date: Tue, 21 Mar 2023 16:51:56 -0400 Subject: [PATCH] Support overriding CPU core location --- experiments/extra.shared.sh | 12 ++++++++++-- experiments/memcached.shared.sh | 8 ++++++-- run.sh | 8 ++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/experiments/extra.shared.sh b/experiments/extra.shared.sh index 62fa1cf..27c7f57 100644 --- a/experiments/extra.shared.sh +++ b/experiments/extra.shared.sh @@ -1,7 +1,11 @@ perf_stat_start() { local opt_args="" if [ "$PERF_STAT_NO_CORES" != "true" ]; then - opt_args="$opt_args -C 0-$((THREADS - 1))" + if [ ! -z "$OVERRIDE_CPUS" ]; then + opt_args="$opt_args -C $OVERRIDE_CPUS" + else + opt_args="$opt_args -C 0-$((THREADS - 1))" + fi fi $PERF stat $PERF_EXTRA_ARGS $opt_args -e LLC-load-misses:u,LLC-load-misses:k,LLC-loads:u,LLC-loads:k,LLC-store-misses:u,LLC-store-misses:k,LLC-stores:u,LLC-stores:k,task-clock,cycles:u,cycles:k,instructions:u,instructions:k -o "$DATA_OUT/stat_$1$EXP_AUX_SUFFIX.txt" & PERF_STAT_PID=$! @@ -14,7 +18,11 @@ perf_stat_stop() { perf_record_start() { local opt_args="" if [ "$PERF_STAT_NO_CORES" != "true" ]; then - opt_args="$opt_args -C 0-$((THREADS - 1))" + if [ ! -z "$OVERRIDE_CPUS" ]; then + opt_args="$opt_args -C $OVERRIDE_CPUS" + else + opt_args="$opt_args -C 0-$((THREADS - 1))" + fi fi pushd "$DATA_OUT" diff --git a/experiments/memcached.shared.sh b/experiments/memcached.shared.sh index d6423f1..f0bb02c 100644 --- a/experiments/memcached.shared.sh +++ b/experiments/memcached.shared.sh @@ -28,8 +28,12 @@ cleanup_memcached() { start_memcached() { echo "Starting memcached" - echo "taskset -c 0-$((THREADS - 1 - THREAD_TAIL_OFFSET)) $MEMCACHED $MEMCACHED_ARGS -u root -t $((THREADS - THREAD_TAIL_OFFSET)) -b 16384 -c 32768 -m 10240 -o hashpower=24,no_lru_maintainer,no_lru_crawler" - taskset -c 0-$((THREADS - 1 - THREAD_TAIL_OFFSET)) $MEMCACHED $MEMCACHED_ARGS -u root -t $((THREADS - THREAD_TAIL_OFFSET)) -b 16384 -c 32768 -m 10240 -o hashpower=24,no_lru_maintainer,no_lru_crawler & + local cpus="0-$((THREADS - 1 - THREAD_TAIL_OFFSET))" + if [ ! -z "$OVERRIDE_CPUS" ]; then + cpus="$OVERRIDE_CPUS" + fi + echo "taskset -c $OVERRIDE_CPUS $MEMCACHED $MEMCACHED_ARGS -u root -t $((THREADS - THREAD_TAIL_OFFSET)) -b 16384 -c 32768 -m 10240 -o hashpower=24,no_lru_maintainer,no_lru_crawler" + taskset -c $OVERRIDE_CPUS $MEMCACHED $MEMCACHED_ARGS -u root -t $((THREADS - THREAD_TAIL_OFFSET)) -b 16384 -c 32768 -m 10240 -o hashpower=24,no_lru_maintainer,no_lru_crawler & MEMCACHED_PID=$! if [ "$PERF_STAT_ONLY_MEMCACHED" == "true" ]; then PERF_EXTRA_ARGS_ORIG="$PERF_EXTRA_ARGS" diff --git a/run.sh b/run.sh index 57560b7..1a4c239 100755 --- a/run.sh +++ b/run.sh @@ -38,6 +38,11 @@ while [[ $# -gt 0 ]]; do shift shift ;; + --override-cpus) + OVERRIDE_CPUS="$2" + shift + shift + ;; --fstack) FSTACK=true USERSTACK=true @@ -122,6 +127,9 @@ if [ "${#EXTRA_TUNING[@]}" -gt 0 ]; then EXPERIMENT_NAME="$EXPERIMENT_NAME.$tuning" done fi +if [ ! -z "$OVERRIDE_CPUS" ]; then + EXPERIMENT_NAME="$EXPERIMENT_NAME.override_cpus$OVERRIDE_CPUS" +fi if [ "$FSTACK" == "true" ]; then EXPERIMENT_NAME="$EXPERIMENT_NAME.fstack" fi -- GitLab