From 3a7aeebf7d7c58e53158321d73542c239896a3d7 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Wed, 21 Sep 2022 14:44:05 +0200 Subject: [PATCH] tests: validate CONFIG_HZ_1000 If we plan to use dm throttling for mirror targets - we actually have to check whether kernel runs with CONFIG_HZ_1000 - if it does not the whole idea of throttling is actually not working in the testsuite as within a single 'tick' with HZ 100 way too much date is being moved on any modern hardware - and since there is no plan to change this in kernel - we simply avoid using throttling on such kernel and test needs to work differently - either ignore results or use much larger mirror sizes... --- test/lib/aux.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/lib/aux.sh b/test/lib/aux.sh index ca9406383..58439d62d 100644 --- a/test/lib/aux.sh +++ b/test/lib/aux.sh @@ -1206,6 +1206,16 @@ remove_dm_devs() { # Throttle down performance of kcopyd when mirroring i.e. disk image throttle_sys="/sys/module/dm_mirror/parameters/raid1_resync_throttle" throttle_dm_mirror() { + # if the kernel config file is present, validate whether the kernel uses HZ_1000 + # and return failure for this 'throttling' when it does NOT as without this setting + # whole throttling is pointless on modern hardware + local kconfig="/boot/config-$(uname -r)" + if test -e "$kconfig" ; then + grep -q "CONFIG_HZ_1000=y" "$kconfig" 2>/dev/null || { + echo "WARNING: CONFIG_HZ_1000=y is NOT set in $kconfig -> throttling is unusable" + return 1 + } + fi test -e "$throttle_sys" || return test -f THROTTLE || cat "$throttle_sys" > THROTTLE echo ${1-1} > "$throttle_sys"