summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2022-09-21 14:44:05 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2022-09-21 14:58:34 +0200
commit3a7aeebf7d7c58e53158321d73542c239896a3d7 (patch)
treefed2e1fa94500be8b7388d6f2abc2d8cd5cbb8e8 /test
parent96f303eb08d6429e92d727020788830a3f7fcfc8 (diff)
downloadlvm2-3a7aeebf7d7c58e53158321d73542c239896a3d7.tar.gz
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...
Diffstat (limited to 'test')
-rw-r--r--test/lib/aux.sh10
1 files changed, 10 insertions, 0 deletions
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"