From 10d2a085292d42716dacac36c973cbbf8bcfaeb0 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Fri, 27 Mar 2020 14:31:12 +0000 Subject: [PATCH] FIX: irqbalance settings By default irqbalance should be honoring isolcpu settings but as of latest finding IRQs are distributed ad-hoc even if irqbalance is: - enabled: with default settings - disabled: by configuration - disabled: as a service - enabled: with incorrect mask This patch brings explicit configuration of IRQBALANCE_BANNED_CPUS with mask large enough to cover all cores and keeps IRQ to be processed by core 0. Signed-off-by: Peter Mikus Change-Id: I0eb36d780feb284a5493e123acbf993a362ea9ec --- .../roles/performance_tuning/files/irqbalance | 26 ++++++++++++++++++++++ .../roles/performance_tuning/tasks/main.yaml | 10 +++++++++ 2 files changed, 36 insertions(+) create mode 100644 resources/tools/testbed-setup/ansible/roles/performance_tuning/files/irqbalance diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/files/irqbalance b/resources/tools/testbed-setup/ansible/roles/performance_tuning/files/irqbalance new file mode 100644 index 0000000000..98ba483b0d --- /dev/null +++ b/resources/tools/testbed-setup/ansible/roles/performance_tuning/files/irqbalance @@ -0,0 +1,26 @@ +# irqbalance is a daemon process that distributes interrupts across +# CPUS on SMP systems. The default is to rebalance once every 10 +# seconds. This is the environment file that is specified to systemd via the +# EnvironmentFile key in the service unit file (or via whatever method the init +# system you're using has. +# +# ONESHOT=yes +# after starting, wait for a minute, then look at the interrupt +# load and balance it once; after balancing exit and do not change +# it again. +#IRQBALANCE_ONESHOT= + +# +# IRQBALANCE_BANNED_CPUS +# 64 bit bitmask which allows you to indicate which cpu's should +# be skipped when reblancing irqs. Cpu numbers which have their +# corresponding bits set to one in this mask will not have any +# irq's assigned to them on rebalance +# +IRQBALANCE_BANNED_CPUS=ffffffff,ffffffff,ffffffff,fffffffe + +# +# IRQBALANCE_ARGS +# append any args here to the irqbalance daemon as documented in the man page +# +#IRQBALANCE_ARGS= diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml index e28f9ba6a2..49a20882b9 100644 --- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml +++ b/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml @@ -148,6 +148,16 @@ tags: - copy-cpufrequtils +- name: Performance Tuning - Copy Irqbalance File + copy: + src: "files/irqbalance" + dest: "/etc/default/irqbalance" + owner: "root" + group: "root" + mode: "0644" + tags: + - copy-irqbalance + - name: Performance Tuning - Set Ondemand Service To Disable service: name: "ondemand" -- 2.16.6