FIX: irqbalance settings 14/26214/2
authorPeter Mikus <pmikus@cisco.com>
Fri, 27 Mar 2020 14:31:12 +0000 (14:31 +0000)
committerPeter Mikus <pmikus@cisco.com>
Wed, 1 Apr 2020 06:33:09 +0000 (06:33 +0000)
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 <pmikus@cisco.com>
Change-Id: I0eb36d780feb284a5493e123acbf993a362ea9ec

resources/tools/testbed-setup/ansible/roles/performance_tuning/files/irqbalance [new file with mode: 0644]
resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml

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 (file)
index 0000000..98ba483
--- /dev/null
@@ -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=
index e28f9ba..49a2088 100644 (file)
   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"