From 7927d8b7cd2ef5a0d6573e09850ac69d9d4b9691 Mon Sep 17 00:00:00 2001 From: Peter Cai <peter.cai@uwaterloo.ca> Date: Tue, 14 Feb 2023 14:34:20 -0500 Subject: [PATCH] Add support for experiments with kernel polling --- experiments/memcached.shared.sh | 2 +- experiments/memcached_qps_scan.sh | 7 ++++++- run.sh | 9 +++++++++ tunings/kernel_polling.sh | 8 ++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 tunings/kernel_polling.sh diff --git a/experiments/memcached.shared.sh b/experiments/memcached.shared.sh index 57009ca..79027df 100644 --- a/experiments/memcached.shared.sh +++ b/experiments/memcached.shared.sh @@ -10,7 +10,7 @@ cleanup_mutilate() { cleanup_memcached() { echo "Killing memcached process" - kill $MEMCACHED_PID + kill -INT $MEMCACHED_PID } start_memcached() { diff --git a/experiments/memcached_qps_scan.sh b/experiments/memcached_qps_scan.sh index e6add1c..4492f5a 100644 --- a/experiments/memcached_qps_scan.sh +++ b/experiments/memcached_qps_scan.sh @@ -23,7 +23,12 @@ pre_start() { } run_exp() { - start_memcached + MEMCACHED_ARGS="" + if [ "$NAPI_LOCALITY" == "true" ]; then + MEMCACHED_ARGS="-N $THREADS" + fi + + start_memcached $MEMCACHED_ARGS start_mutilate warmup diff --git a/run.sh b/run.sh index 09af22d..e54c9ce 100755 --- a/run.sh +++ b/run.sh @@ -26,6 +26,11 @@ while [[ $# -gt 0 ]]; do shift shift ;; + --extra-tuning) + EXTRA_TUNING="$2" + shift + shift + ;; *) break ;; @@ -47,6 +52,9 @@ source "./experiments/$EXPERIMENT.sh" pre_start EXPERIMENT_NAME="$EXPERIMENT.$(uname -r)" +if [ ! -z "$EXTRA_TUNING" ]; then + EXPERIMENT_NAME="$EXPERIMENT_NAME.$EXTRA_TUNING" +fi if [ ! -z "$EXPERIMENT_NAME_EXT" ]; then EXPERIMENT_NAME="$EXPERIMENT_NAME.$EXPERIMENT_NAME_EXT" fi @@ -57,6 +65,7 @@ rm -rf "$DATA_OUT" mkdir -p "$DATA_OUT" source ./tunings/normalize_queues.sh +[ ! -z "$EXTRA_TUNING" ] && source ./tunings/"$EXTRA_TUNING".sh run_exp diff --git a/tunings/kernel_polling.sh b/tunings/kernel_polling.sh new file mode 100644 index 0000000..9da0c0e --- /dev/null +++ b/tunings/kernel_polling.sh @@ -0,0 +1,8 @@ +if [ ! "$(uname -r)" == "5.15.79-peter" ]; then + echo "kernel polling only supported on patched kernel" + exit 1 +fi + +sysctl net.core.busy_poll=128 +# NAPI locality is needed for multi-threaded experiments +NAPI_LOCALITY=true -- GitLab