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

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