Commit068928e("Add support for controlling amd-pstate core performance boost") started setting the newly-introduced `boost` parameter in the balanced and powersave profiles, but forgot to do the same in the performance profiles. The net result was that transitioning directly from the powersave profile to a performance profile would leave boosting disabled. Fix this by setting boost=1 explictly in all performance-oriented profiles (i.e., those with a min_perf_pct of 100). Fixes:068928e("Add support for controlling amd-pstate core performance boost")
79 lines
2.4 KiB
Text
79 lines
2.4 KiB
Text
#
|
|
# tuned configuration
|
|
#
|
|
|
|
[main]
|
|
summary=Broadly applicable tuning that provides excellent performance across a variety of common server workloads
|
|
|
|
[variables]
|
|
thunderx_cpuinfo_regex=CPU part\s+:\s+(0x0?516)|(0x0?af)|(0x0?a[0-3])|(0x0?b8)\b
|
|
|
|
[cpu]
|
|
governor=performance
|
|
energy_perf_bias=performance
|
|
min_perf_pct=100
|
|
energy_performance_preference=performance
|
|
boost=1
|
|
|
|
[acpi]
|
|
platform_profile=performance
|
|
|
|
[vm]
|
|
# If a workload mostly uses anonymous memory and it hits this limit, the entire
|
|
# working set is buffered for I/O, and any more write buffering would require
|
|
# swapping, so it's time to throttle writes until I/O can catch up. Workloads
|
|
# that mostly use file mappings may be able to use even higher values.
|
|
#
|
|
# The generator of dirty data starts writeback at this percentage (system default
|
|
# is 20%)
|
|
dirty_bytes = 40%
|
|
|
|
# Start background writeback (via writeback threads) at this percentage (system
|
|
# default is 10%)
|
|
dirty_background_bytes = 10%
|
|
|
|
# Marvell ThunderX
|
|
[vm.thunderx]
|
|
type=vm
|
|
uname_regex=aarch64
|
|
cpuinfo_regex=${thunderx_cpuinfo_regex}
|
|
transparent_hugepages=never
|
|
|
|
[disk]
|
|
# The default unit for readahead is KiB. This can be adjusted to sectors
|
|
# by specifying the relevant suffix, eg. (readahead => 8192 s). There must
|
|
# be at least one space between the number and suffix (if suffix is specified).
|
|
readahead=>4096
|
|
|
|
[sysctl]
|
|
# PID allocation wrap value. When the kernel's next PID value
|
|
# reaches this value, it wraps back to a minimum PID value.
|
|
# PIDs of value pid_max or larger are not allocated.
|
|
#
|
|
# A suggested value for pid_max is 1024 * <# of cpu cores/threads in system>
|
|
# e.g., a box with 32 cpus, the default of 32768 is reasonable, for 64 cpus,
|
|
# 65536, for 4096 cpus, 4194304 (which is the upper limit possible).
|
|
#kernel.pid_max = 65536
|
|
|
|
# The swappiness parameter controls the tendency of the kernel to move
|
|
# processes out of physical memory and onto the swap disk.
|
|
# 0 tells the kernel to avoid swapping processes out of physical memory
|
|
# for as long as possible
|
|
# 100 tells the kernel to aggressively swap processes out of physical memory
|
|
# and move them to swap cache
|
|
vm.swappiness=10
|
|
|
|
# The default kernel value 128 was over twenty years old default,
|
|
# kernel-5.4 increased it to 4096, thus do not have it lower than 2048
|
|
# on older kernels
|
|
net.core.somaxconn=>2048
|
|
|
|
# Marvell ThunderX
|
|
[sysctl.thunderx]
|
|
type=sysctl
|
|
uname_regex=aarch64
|
|
cpuinfo_regex=${thunderx_cpuinfo_regex}
|
|
kernel.numa_balancing=0
|
|
|
|
[video]
|
|
panel_power_savings=0
|