Blame SOURCES/tuned-2.8.0-realtime-priorities-update.patch

ad13cb
From 1ab378cc4a4372ca031bb765f656ab463b28af88 Mon Sep 17 00:00:00 2001
ad13cb
From: Luiz Capitulino <lcapitulino@redhat.com>
ad13cb
Date: Fri, 19 May 2017 15:10:19 -0400
ad13cb
Subject: [PATCH] realtime-virtual-guest: re-assign kernel thread priorities
ad13cb
ad13cb
From 63e5ebfe0c71c5e6d0613c4d8327b2a6f3fba7ba Mon Sep 17 00:00:00 2001
ad13cb
From: Luiz Capitulino <lcapitulino@redhat.com>
ad13cb
Date: Fri, 19 May 2017 14:42:06 -0400
ad13cb
Subject:
ad13cb
ad13cb
The realtime guest profile uses the RT kernel default priority
ad13cb
assignment for the ksoftird, rcuc, and ktimersoftd kernel threads,
ad13cb
which is:
ad13cb
ad13cb
    17  FF   2  [rcuc/1] *
ad13cb
    19  FF   1  [ktimersoftd/1] *
ad13cb
    20  TS   -  [ksoftirqd/1] *
ad13cb
ad13cb
This doesn't allow running a PMD thread with fifo:1 in the
ad13cb
guest, since this will starve ktimersoftd and ksoftirqd if
ad13cb
those threads ever become runnable.
ad13cb
ad13cb
The solution is to use the same priority assigment we use
ad13cb
in the host where we've been running PMD threads with
ad13cb
fifo:1 priorities without problems. This assignment is:
ad13cb
ad13cb
   151  FF   4  [rcuc/15] *
ad13cb
   153  FF   3  [ktimersoftd/15] *
ad13cb
   154  FF   2  [ksoftirqd/15] *
ad13cb
ad13cb
This patch just copies the [scheduler] section from the
ad13cb
host profile.
ad13cb
ad13cb
Resolves: rhbz#1452357
ad13cb
ad13cb
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
ad13cb
---
ad13cb
 profiles/realtime-virtual-guest/tuned.conf | 14 ++++++++++++++
ad13cb
 1 file changed, 14 insertions(+)
ad13cb
ad13cb
diff --git a/profiles/realtime-virtual-guest/tuned.conf b/profiles/realtime-virtual-guest/tuned.conf
ad13cb
index 71085a8..0992fbd 100644
ad13cb
--- a/profiles/realtime-virtual-guest/tuned.conf
ad13cb
+++ b/profiles/realtime-virtual-guest/tuned.conf
ad13cb
@@ -20,6 +20,20 @@ isolated_cores_present_expanded=${f:cpulist_present:${isolated_cores}}
ad13cb
 # Fail if isolated_cores contains CPUs which are not present
ad13cb
 assert2=${f:assertion:isolated_cores contains present CPU(s):${isolated_cores_expanded}:${isolated_cores_present_expanded}}
ad13cb
 
ad13cb
+[scheduler]
ad13cb
+# group.group_name=rule_priority:scheduler_policy:scheduler_priority:core_affinity_in_hex:process_name_regex
ad13cb
+# for i in `pgrep ksoftirqd` ; do grep Cpus_allowed_list /proc/$i/status ; done
ad13cb
+group.ksoftirqd=0:f:2:*:ksoftirqd.*
ad13cb
+
ad13cb
+# for i in `pgrep rcuc` ; do grep Cpus_allowed_list /proc/$i/status ; done
ad13cb
+group.rcuc=0:f:4:*:rcuc.*
ad13cb
+
ad13cb
+# for i in `pgrep rcub` ; do grep Cpus_allowed_list /proc/$i/status ; done
ad13cb
+group.rcub=0:f:4:*:rcub.*
ad13cb
+
ad13cb
+# for i in `pgrep ktimersoftd` ; do grep Cpus_allowed_list /proc/$i/status ; done
ad13cb
+group.ktimersoftd=0:f:3:*:ktimersoftd.*
ad13cb
+
ad13cb
 [script]
ad13cb
 script=${i:PROFILE_DIR}/script.sh
ad13cb