1
0
Fork 0
tuned/profiles/cpu-partitioning/tuned.conf
Luiz Capitulino 11686d59fe cpu-partitioning: enable timer migration
As the cpu-partitioning profile does not use isolcpus=,
the kernel can end up creating long living timers on
nohz_full CPUs during early boot. Those timers will
fire later, causing jitter.

However, recent Linux kernel will always try to migrate
unpinned timers away from nohz_full CPUs when timer
migration is enabled which is what we want.

NOTE: Older kernels would migrate unpinned timers from
      idle CPUs to busy CPUs without regard if the
      CPU is nohz_full. This would certainly cause
      trouble to applications that takes 100% of the
      CPU in user-space (eg. DPDK). So, enabling
      timer migration is only safe on recent kernels.

Resolves: rhbz#1408308

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-01-10 13:44:28 +01:00

40 lines
1.4 KiB
Text

# tuned configuration
#
[main]
summary=Optimize for CPU partitioning
include=network-latency
[variables]
# User is responsible for updating variables.conf with variable content such as isolated_cores=X-Y
include=/etc/tuned/cpu-partitioning-variables.conf
# Non-isolated cores cpumask including offline cores
isolated_cores_expanded=${f:cpulist_unpack:${isolated_cores}}
isolated_cpumask=${f:cpulist2hex:${isolated_cores_expanded}}
not_isolated_cores_expanded=${f:cpulist_invert:${isolated_cores_expanded}}
isolated_cores_present_expanded=${f:cpulist_present:${isolated_cores}}
not_isolated_cores_present_expanded=${f:cpulist_present:${not_isolated_cores_expanded}}
not_isolated_cpumask=${f:cpulist2hex:${not_isolated_cores_expanded}}
# Fail if isolated_cores contains CPUs which are not present
assert=${f:assertion:isolated_cores contains present CPU(s):${isolated_cores_expanded}:${isolated_cores_present_expanded}}
[sysctl]
kernel.hung_task_timeout_secs = 600
kernel.nmi_watchdog = 0
vm.stat_interval = 10
kernel.timer_migration = 1
[sysfs]
/sys/bus/workqueue/devices/writeback/cpumask = ${not_isolated_cpumask}
/sys/devices/virtual/workqueue/cpumask = ${not_isolated_cpumask}
/sys/devices/system/machinecheck/machinecheck*/ignore_ce = 1
[script]
script=script.sh
[systemd]
cpu_affinity=${not_isolated_cores_expanded}
[bootloader]
cmdline= nohz=on nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} intel_pstate=disable nosoftlockup