1
0
Fork 0
Commit graph

129 commits

Author SHA1 Message Date
Luiz Capitulino
685e16640d realtime-virtual-host: script.sh: standardize variable names
script.sh has been using variable names in different ways,
in different scopes: when using variables at all. Fix all that.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2018-02-22 21:03:16 +01:00
Luiz Capitulino
c989a8bd7c realtime-virtual-host: script.sh: unbreak profile loading
Profile loading is broken since commit b532e9291d, due to
a small typo in the new function name.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2018-02-22 21:03:16 +01:00
Luiz Capitulino
c823e3c5f2 functions: add die() function
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2018-02-22 21:03:16 +01:00
Jaroslav Škarvada
8e202b2877
script: show stderr output in the log
Also fixed cpu-partitioning profile script not to break irqbalance
configuration file in case of defirqaffinity failure.

Resolves: rhbz#1536476

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2018-01-19 16:13:04 +01:00
Jaroslav Škarvada
b532e9291d
Consolidated scripts and spec file regarding tscdeadline-latency
Related: rhbz#1504680

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-11-14 12:34:41 +01:00
Jaroslav Škarvada
10a59112c0
Merge pull request #79 from bonzini/master
port realtime virtual host profile to Fedora
2017-11-13 16:03:52 +01:00
Ondřej Lysoněk
3c241af1d3 profiles: Use 'power' instead of 'powersave' in energy_perf_bias
The x86_energy_perf_policy program changed its interface in the 4.13
kernel. The value 'power' now has to be used instead of 'powersave'.

Resolves: rhbz#1508468
2017-11-01 16:31:53 +01:00
Jaroslav Škarvada
c91357cdf5
cpu-partitioning: store helper state file to /run and few other tweaks
Helper state file for cpu-partitioning script was moved to /run/tuned.
Code for flags manipulation has been simplified.
The /run/tuned directory is explicitly cleared upon uninstallation
of Tuned to get rid of all leftovers / helper files before the reboot.
Added STORAGE_PERSISTENT variable pointing to /var/lib/tuned into
functions to be consistent.

Related: rhbz#1497182

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-10-20 15:13:45 +02:00
Paolo Bonzini
d41ee92a3a port realtime virtual host profile to Fedora
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2017-10-20 14:24:12 +02:00
Luiz Capitulino
b39c2af9db cpu-partitioning: add no_rebalance_cores= option
As cpu-partitioning doesn't use isolcpus=, isolated CPUs can incur
very high latency due to load balancing performed by the kernel
scheduler.

This patch introduces a new configuration option called
no_rebalance_cores=. This options allow users to set a range
of CPUs to have load balancing disabled from /proc. It is
expected that users will only disable load balancing on CPUs
which run PMD threads (or vCPU threads running PMD threads),
since disabling this for all isolated CPUs can cause certain
performance problems for OpenStack.

Here are some numbers:

 - Without using no_rebalance_cores=, I can easily get 40us+
   in load balancing isolated CPUs:

           <...>-14140 [001]  1656.121155: funcgraph_entry:      + 43.927 us  |  rebalance_domains();
           <...>-14140 [001]  1660.117150: funcgraph_entry:      + 41.587 us  |  rebalance_domains();
           <...>-14140 [001]  1658.119152: funcgraph_entry:      + 41.565 us  |  rebalance_domains();
           <...>-14140 [001]  1668.110140: funcgraph_entry:      + 40.539 us  |  rebalance_domains();

 - When using no_rebalance_cores=, the maximum latency I
   get is ~ 1us:

           <...>-2440  [012]  1705.078076: funcgraph_entry:        1.024 us   |  rebalance_domains();
           <...>-2438  [008]  2021.065218: funcgraph_entry:        0.995 us   |  rebalance_domains();
           <...>-2447  [010]  2223.057289: funcgraph_entry:        0.991 us   |  rebalance_domains();

  IMPORTANT: 10 minutes run only.

This solution was developed by Andrew Theurer <atheurer@redhat.com>,
I'm merely integrating it into the profile.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-10-20 13:51:33 +02:00
Jaroslav Škarvada
79d995a3fb
sap-hana: change force_latency to 70
Resolves: rhbz#1501252

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-10-12 17:10:21 +02:00
Ondřej Lysoněk
9fef12dddf cpu-partitioning: Fix typo in 00-tuned-pre-udev.sh
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2017-10-12 16:30:33 +02:00
Luiz Capitulino
03449e60f9 tuned: disable KSM in KVM low-latency profiles
KSM is enabled by default when the qemu-kvm-common-rhev package is
installed. We don't want KSM to run in KVM-RT nor cpu-partitioning
hosts, as it can cause spikes or packet drops.

This series disables KSM in those profiles when they are activated.
Likewise, we re-enable KSM when the profile is de-activated in
case it's enabled by default in systemd.

Luiz Capitulino (3):
  profiles: functions: add functions to disable/enable KSM
  realtime-virtual-host: disable KSM
  cpu-partitioning: disable KSM

 profiles/cpu-partitioning/script.sh      |  2 ++
 profiles/functions                       | 37 ++++++++++++++++++++++++++++++++
 profiles/realtime-virtual-host/script.sh |  3 +++
 3 files changed, 42 insertions(+)

--
2.9.5
Return-Path: lcapitulino@redhat.com
Received: from zmta04.collab.prod.int.phx2.redhat.com (LHLO
 zmta04.collab.prod.int.phx2.redhat.com) (10.5.81.11) by
 zmail22.collab.prod.int.phx2.redhat.com with LMTP; Tue, 3 Oct 2017 15:54:02
 -0400 (EDT)
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])
	by zmta04.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 46F2FD0310
	for <jskarvad@mail.corp.redhat.com>; Tue,  3 Oct 2017 15:54:02 -0400 (EDT)
Received: by smtp.corp.redhat.com (Postfix)
	id 3FBC860F82; Tue,  3 Oct 2017 19:54:02 +0000 (UTC)
Delivered-To: jskarvad@redhat.com
Received: from localhost (ovpn-117-159.phx2.redhat.com [10.3.117.159])
	by smtp.corp.redhat.com (Postfix) with ESMTP id 3A51A60F81;
	Tue,  3 Oct 2017 19:53:59 +0000 (UTC)
From: Luiz Capitulino <lcapitulino@redhat.com>
To: jskarvad@redhat.com
Cc: kvm-rt@redhat.com
Subject: [PATCH 1/3] profiles: functions: add functions to disable/enable KSM
Date: Tue,  3 Oct 2017 15:53:50 -0400
Message-Id: <20171003195352.22910-2-lcapitulino@redhat.com>
In-Reply-To: <20171003195352.22910-1-lcapitulino@redhat.com>
References: <20171003195352.22910-1-lcapitulino@redhat.com>
X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12

They will be used by the next commits.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-10-10 14:00:28 +02:00
Ondřej Lysoněk
f9f261e820 plugin_video: Prefix DPM states with 'dpm-'
Prefix DPM states with 'dpm-' to prevent future name collisions.
Also, change the state in powersave profiles to 'battery' - there's
no such DPM state as powersave.

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2017-09-19 23:03:41 +02:00
Jaroslav Škarvada
182d3f4abd Merge pull request #70 from olysonek/replace_ethtool_in_scripts
Replace ethtool invocation in scripts by built-in functionality
2017-09-19 16:50:54 +02:00
Ondřej Lysoněk
b970238a3d profiles: Use net plugin to disable LRO in sap-hana-vmware
Use net plugin to disable large receive offload in sap-hana-vmware profile.
This also fixes rollback of the setting - previously, after unapplying
the profile, LRO would always be set to 'on', irrespectively of the
original setting.

The network interfaces which should have LRO disabled must be listed
in /etc/tuned/sap-hana-vmware-variables.conf, e.g. like this:
sap_hana_vmware_nic=eth0

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2017-09-19 16:38:15 +02:00
Jaroslav Škarvada
eef09f1185
plugin_video: merged radeon 'dpm' into radeon_powersave
Now, in addition to the already supported Radeon power methods, it also
supports:

radeon_powersave=DPM

where DPM can be 'battery', 'balanced', or 'performance'.

It also supports fallback, so one can write:

radeon_powersave=balanced, auto

where it tries 'balanced' DPM profile and if it fails or is not
supported it fallbacks to the non DPM 'auto' profile.

As delimiters colon, semilocon, comma or whitespace can be used.

It also switched upstream profiles to prefer DPM.

https://github.com/redhat-performance/tuned/pull/32

Related: rhbz#1417659

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-09-19 14:57:26 +02:00
Jaroslav Škarvada
bccfe3e8d1 sap-hana: fixed description of the sap-hana profiles
Resolves: rhbz#1482005

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-08-21 13:40:22 +02:00
Jaroslav Škarvada
962bae3d71
realtime profiles: dropped tuna invocation from host/guest
Tuna is already executed in the realtime profile which is included by
the realtime-virtual-host/guest profiles, there is no need to execute
it twice. Also fixed minor whitespace inconsistency.

Related: rhbz#1472840

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-07-19 18:35:17 +02:00
Jaroslav Škarvada
e1e662f040
network-latency: dropped spurious whitespace
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-07-19 18:05:45 +02:00
Jaroslav Škarvada
d1379afbec
cpu-partitioning: add cmdline, not redefine it
Related: rhbz#1451073

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-07-19 15:06:16 +02:00
Jaroslav Škarvada
643864f10c
network-latency: added skew_tick=1 kernel command line parameter
Also removed the parameter from the realtime profile, because it already
includes the network-latency profile.

Resolves: rhbz#1451073

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-07-19 13:46:56 +02:00
Jaroslav Škarvada
c315f6228c
realtime: fixed typos in cmdline add
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-06-14 16:46:02 +02:00
Luiz Capitulino
1ab378cc4a realtime-virtual-guest: re-assign kernel thread priorities
From 63e5ebfe0c71c5e6d0613c4d8327b2a6f3fba7ba Mon Sep 17 00:00:00 2001
From: Luiz Capitulino <lcapitulino@redhat.com>
Date: Fri, 19 May 2017 14:42:06 -0400
Subject:

The realtime guest profile uses the RT kernel default priority
assignment for the ksoftird, rcuc, and ktimersoftd kernel threads,
which is:

    17  FF   2  [rcuc/1] *
    19  FF   1  [ktimersoftd/1] *
    20  TS   -  [ksoftirqd/1] *

This doesn't allow running a PMD thread with fifo:1 in the
guest, since this will starve ktimersoftd and ksoftirqd if
those threads ever become runnable.

The solution is to use the same priority assigment we use
in the host where we've been running PMD threads with
fifo:1 priorities without problems. This assignment is:

   151  FF   4  [rcuc/15] *
   153  FF   3  [ktimersoftd/15] *
   154  FF   2  [ksoftirqd/15] *

This patch just copies the [scheduler] section from the
host profile.

Resolves: rhbz#1452357

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-05-29 17:40:02 +02:00
Jaroslav Škarvada
4483641602
realtime-virtual-host/guest: added suffix to cmdline
This is a workaround how to overcame the internal parser / merger limitation.

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-05-29 17:34:42 +02:00
Luiz Capitulino
9bc020df37 realtime: use skew_tick=1 in kernel cmdline
By default the timer tick will fire at the same time on all
CPUs. This causes the jiffies_lock to get contended in the
real-time kernel, as it's a raw spinlock. skew_tick=1 causes
the timer tick to fire at different times on all CPUs,
fixing the contention.

Note skew_tick=1 usage is going to be propagated to the
NFV profiles as well.

Resolves: rhbz#1447938

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-05-29 17:30:17 +02:00
Luiz Capitulino
fdff5f15b9 realtime: drop unhelpful comment
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-05-29 17:30:15 +02:00
Luiz Capitulino
283a2b9aa2 nfv-host: inherit kernel cmdline from realtime profile
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-05-29 17:30:09 +02:00
Luiz Capitulino
6cf54b6315 nfv-guest: inherit kernel cmdline from realtime profile
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-05-29 17:30:04 +02:00
Jaroslav Škarvada
af56ac35ed
cpu-partitioning: used tuned instead of tuna for cores isolation
Resolves: rhbz#1442229

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-04-28 16:26:12 +02:00
Jaroslav Škarvada
8c34b7384e
builtin functions: add strip
The strip functions makes string from all arguments and
expands to its stripped version.

Also used in the cpu-partitioning profile to strip output
of the 'mktemp -d' command.

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-04-13 23:23:58 +02:00
Jaroslav Škarvada
8cde3e1b3c
cpu-partitioning: use tuna for cores isolation
Users can switch to Tuned if they need process blacklisting
(i.e. marking of processes which are allowed to run on
isolated cores). This will be very probably made the default
in next Tuned release.

Related: rhbz#1403309

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-04-13 21:51:46 +02:00
Jaroslav Škarvada
ac78f90c77
scheduler: added support for cores isolation
Plugin scheduler now can do cores isolation on its own, Tuna is
not needed for it, e.g.:

[scheduler]
isolated_cores=2-4
ps_blacklist=.*pmd.*;.*PMD.*;^DPDK;.*qemu-kvm.*

It will isolate cores 2-4, it will ignore processes which matched
ps_blacklist regexes. Multiple regexes can be separated by ';'.
Quoted semicolon, i.e. '\;' is taken literally.

It also supports 'ps_whitelist' which is by default set to '.*'.

It takes all processes which matches ps_whitelist than it removes
those which matches ps_blacklist and move them out of the
isolated_cores. When the profile is unloaded it allows all matching
processes to run on all cores.

It changes processes affinities, threads affinities, IRQs affinities
and it sets default_smp_affinity for IRQs.

Also cpu-partitioning profile has been switched from Tuna to this
mechanism.

Resolves: rhbz#1403309

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-04-07 17:46:32 +02:00
Jaroslav Škarvada
b2cc6189f8
profiles: consolidated summaries
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-04-03 22:52:18 +02:00
Jaroslav Škarvada
df9aa2f5c4
With systemd don't do full rollback on shutdown / reboot
With systemd full rollback is done if Tuned is terminated by user or profile
is changed. It is not done if Tuned is terminated due to system
shutdown / reboot. Without systemd full rollback is done only if profile
is changed.

Renamed profile_switch parameter to full_rollback where appropriate.

Also fixed various checks for command not found.

Resolves: rhbz#1421286

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-04-01 12:36:43 +02:00
Jaroslav Škarvada
a952845bf1
desktop: fixed typo in profile summary
Resolves: rhbz#1421238

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-30 17:00:26 +02:00
Jaroslav Škarvada
1a100c9c7b
profiles: fixed assert for unset isolated_cores
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-30 16:29:49 +02:00
Jaroslav Škarvada
6c3fd2b79e
profiles: added check for unset isolated_cores
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-30 16:14:06 +02:00
Jaroslav Škarvada
1623ac4a85
assertion_non_equal: improved logging for better readability
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-30 16:09:53 +02:00
Jaroslav Škarvada
d8b925ae65
realtime: fixed misleading error message if no isolated cores are set
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-30 15:07:49 +02:00
Jaroslav Škarvada
f104dca756
realtime: correctly log error message about no isolated cores set
Error message about no isolated cores set wasn't displayed,
because the current plugin_script code only logs messages written
to STDERR.

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-30 13:49:35 +02:00
Jaroslav Škarvada
3ca7cfceb1
realtime-virtual-host: accommodate new ktimersoftd thread
Patch provided by Luiz Capitulino <lcapitulino@redhat.com>

Resolves: rhbz# 1332563

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-21 10:43:58 +01:00
Ondřej Lysoněk
9e8450c8b6 Use ${i:PROFILE_DIR} in our profiles
Use the new ${i:PROFILE_DIR} internal function with the 'script'
option in the profiles we ship.

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2017-03-13 09:50:26 +01:00
Jaroslav Škarvada
5e9c3d264f
cpu-partitioning: minor indentation fix
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-07 17:37:25 +01:00
Jaroslav Škarvada
6906738603
cpu-partitioning: kernel cmdline parameter changed to tuned.non_isolcpus
It's more descriptive to use 'tuned.non_isolcpus' kernel boot command line
parameter for dracut preudev scripts provided by Tuned than the
previously used 'tuned.cpumask'.

Related: rhbz#1395899

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-07 15:30:56 +01:00
Jaroslav Škarvada
64decfe756 cpu-partitioning: set workqueue affinity early
This adds 00-tuned-pre-udev.sh script into initrd image which is getting
tuned.cpumask kernel command line parameter and sets workqueue affinity
accordingly.

Resolves: rhbz#1395899

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-03 19:01:48 +01:00
Jaroslav Škarvada
843dc8cf5f cpu-partitioning: set CPUAffinity early in initrd image
Resolves: rhbz#1394965

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2017-03-03 18:28:32 +01:00
Luiz Capitulino
efd686427c cpu-partitioning: disable kvmclock sync and ple
Otherwise, a process running on isolated CPUs will be
interrupted by timers or unwanted VM exists.

Resolves: rhbz#1395855

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-01-10 13:56:56 +01:00
Luiz Capitulino
e25fcb3164 realtime-virtual-host: use kvm modprobe helpers
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-01-10 13:50:03 +01:00
Luiz Capitulino
e153bf3ba1 profiles/functions: introduce kvm modprobe file helpers
This commit introduces functions to create and delete the
kvm modprobe file used by the realtime profiles.

This is needed because the cpu-partitioning profile wants
the same modprobe file for kvm.

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