From 3d2a88c12b52cd4f344d4a65f25a3fde3e6a2040 Mon Sep 17 00:00:00 2001 From: Josh Lay Date: Sun, 24 Mar 2024 18:55:50 -0500 Subject: [PATCH] handle sysctl tunable dict --- host_vars/localhost.yml | 13 ++++++++++ roles/tuned_amdgpu/templates/tuned.conf.j2 | 29 ++++------------------ 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/host_vars/localhost.yml b/host_vars/localhost.yml index bcaa294..578ca52 100644 --- a/host_vars/localhost.yml +++ b/host_vars/localhost.yml @@ -26,3 +26,16 @@ gpu_mv_offset: "+125" # add 125mV or 0.125V # gpu_mv_offset: "+50" # add 50mV or 0.05V # gpu_mv_offset: "+75" # add 75mV or 0.075V # '-50' undervolts GPU core voltage 50mV or 0.05V; untested - here be dragons/instability + +# optional kernel parameters to set as well +sysctl: # quote ints/cast to string to avoid surprises + kernel.dmesg_restrict: '0' # allow regular users to see the kernel ring buffer + net.core.default_qdisc: fq # congestion control + net.ipv4.tcp_congestion_control: bbr2 # cong. control part 2 + net.core.rmem_max: '33554432' + net.core.wmem_max: '33554432' + dev.raid.speed_limit_min: '2000000' + dev.raid.speed_limit_max: '6000000' + vm.compaction_proactiveness: '30' # improve THP allocation latency, compact in background + vm.page_lock_unfairness: '1' # make page lock theft slightly more fair + vm.max_map_count: '1048576' # allow some games to run (eg: DayZ) diff --git a/roles/tuned_amdgpu/templates/tuned.conf.j2 b/roles/tuned_amdgpu/templates/tuned.conf.j2 index 729e025..a10ec3e 100644 --- a/roles/tuned_amdgpu/templates/tuned.conf.j2 +++ b/roles/tuned_amdgpu/templates/tuned.conf.j2 @@ -2,35 +2,16 @@ include={{ item.1 }} summary={{ item.1 }} + TCP/RAID tweaks + AMDGPU {{ item.0 }} +{% if sysctl is defined %} [sysctl] -# allow regular users to see the kernel ring buffer -kernel.dmesg_restrict=0 -net.core.default_qdisc=fq -# 'bbr2' requires a [modified] supporting kernel - stock Fedora kernels do *not* support it (currently) -# eg: 'kernel-xanmode-edge' from COPR 'rmnscnce/kernel-xanmod' -net.ipv4.tcp_congestion_control=bbr2 -net.core.rmem_max=33554432 -net.core.wmem_max=33554432 -dev.raid.speed_limit_min=1000000 -dev.raid.speed_limit_max=6000000 -# improve THP allocation latency, compact in background -vm.compaction_proactiveness=30 -# make page lock theft slightly more fair -vm.page_lock_unfairness=1 -# allow some games to run (eg: DayZ) -vm.max_map_count=1048576 +{% for _sysctl, value in sysctl.items() %} +{{ _sysctl }}={{ value }} +{% endfor %} +{% endif %} # reference/execute AMDGPU control script # used because some sysfs interfaces are transactional # cannot be set by a single param in 'tuned'/[sysfs] [gpuclockscript] type=script script=${i:PROFILE_DIR}/amdgpu-clock.sh - -# for SSDs with no RPM, set no IO scheduler -[ssdnosched] -type=disk -devices_udev_regex=(ID_ATA_ROTATION_RATE_RPM=0) -# elevator=none -elevator=kyber -# elevator=mq-deadline