1
0
Fork 0
Commit graph

175 commits

Author SHA1 Message Date
Marcelo Tosatti
785128af2d realtime profile: fix nowatchdog kernel command line option
The correct string for the option is "tsc=nowatchdog", and
not "nowatchdog".

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2019-11-13 21:01:43 +01:00
Marcelo Tosatti
0facf2ed5e realtime profile: add "nowatchdog" kernel command line option
This option disables the TSC clocksource watchdog
for isolated CPUs (which avoids interruptions
by the per-CPU clocksource watchdog timer).

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2019-11-01 11:00:28 +01:00
Jaroslav Škarvada
252bd91ed0
latency-peformance: backup latency requirement increased to 3 us
In the kernel table of exit latencies of various CPUs the worst
exit latency for C1 seems to be 3 us, so increase the backup
value latency requirement to 3 us to match the worst C1 exit
latency.

Related: rhbz#1737628

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2019-09-24 09:00:41 +02:00
Jaroslav Škarvada
e40b50a498
Used C-states in latency specification
For sap-hana and virtual-host profiles used state3 (i.e. usually C3)
C-state in latency specification instead of the hardcoded value 70 us,
i.e.:
force_latency=cstate.id:3|70

Also dropped obsoleted TODO note from the plugin_cpu.

Related: rhbz#1737628

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2019-08-16 18:13:02 +02:00
Jaroslav Škarvada
0ec40e0360
plugin_cpu: latency can be now specified as cstate
Maximal latency can be now specified multiple ways:
- directly in usec (this is the same as before), e.g. for 10 us:
  force_latency = 10
- as an ID of maximal cstate allowed, e.g. for the kernel state1:
  force_latency = cstate.id:1
- as a name (case sensitive) of maximal cstate allowed, e.g. for the state named C1:
  force_latency = cstate.name:C1

It is also possible to specify multiple fallback values separated by '|', e.g.:
  force_latency = cstate.name:C6|cstate.id:4|10

This will try to obtain latency of cstate named C6, if it fails (e.g.
there is no such cstate), it will try kernel state4 and if it also fails
it finally fallbacks to 10 us.

This commit also changes force_latency settings of latency-performance
profile to:
  force_latency=cstate.id:1|1

I.e. it tries kernel state1 and fallbacks to 1 us.

Resolves: rhbz#1737628

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2019-08-14 16:34:17 +02:00
Marcelo Tosatti
25089296f3 realtime-virtual profiles: enable ktimer_lockless_check if available
RHEL will include a backport of the kernel patch
"do not raise timer softirq unconditionally (spinlockless version)"
(https://lkml.org/lkml/2019/4/15/1215), but disabled by default.

Enable it in realtime-virtual-{host/guest} profiles as it decreases
maximum cyclictest latency.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2019-07-18 10:57:33 +02:00
Peter Xu
7e93b6948f realtime: Apply irqbalance tunes too in realtime profiles
Realtime profiles require to restrict irqbalance too.  Apply them to
the realtime profile so that realtime-virtual-{host|guest} can benefit
from that too.

Signed-off-by: Peter Xu <peterx@redhat.com>
2019-07-10 13:09:03 +08:00
Peter Xu
4a8e64994e cpu-partitioning: Introduce irqbalance helpers and use
Provide irqbalance_banned_cpus_{setup|clear} for tuning irqbalance.
Use them in cpu-partitioning.

Signed-off-by: Peter Xu <peterx@redhat.com>
2019-07-10 13:09:03 +08:00
Jaroslav Škarvada
9b1c045d30
realtime-virtual-host: add tsc-deadline=on to qemu cmdline
So that QEMU uses the in kernel irqchip.

Original patch provided by Luiz Capitulino <lcapitulino@redhat.com>.

Resolves: rhbz#1554458

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2019-06-10 19:11:53 +02:00
Ondřej Lysoněk
664cf6dde9 sap-netweaver: Use RHEL-8 defaults for kernel.shmall and kernel.shmmax
The kernel.shmall and kernel.shmmax parameters were previously set using
a script that calculated their values based on the system's memory size.
However the script was broken for high values of memory size.

The default value of kernel.shmall and kernel.shmmax in RHEL-8 is
18446744073692774399, which is sufficiently high and it's recommended to
use it. So we could simply drop the tuning from the profile, however it
seems better to set the value explicitly so that the profile overrides
any changes that may have been applied to the parameters due to
misconfiguration.

Resolves: rhbz#1708418

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2019-06-06 10:52:32 +02:00
Ondřej Lysoněk
d673e006e2 sap-hana: Change value of kernel.sem to RHEL-8 default
The default value of kernel.sem in RHEL-8 is '32000 1024000000 500
32000', which is much higher than what we currently have in the profile.
It is unnecessary to lower the settings, the RHEL-8 defaults are safe to
use. So we could simply drop the tuning from the profile, however it
seems better to set the value explicitly so that the profile overrides
any changes that may have been applied to the parameter due to
misconfiguration.

Resolves: rhbz#1701394

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2019-06-06 10:52:27 +02:00
Ondřej Lysoněk
2dfa7c4a9b sap-netweaver: Change value of kernel.sem to RHEL-8 default
The default value of kernel.sem in RHEL-8 is '32000 1024000000 500
32000', which is much higher than what we currently have in the profile.
It is unnecessary to lower the settings, the RHEL-8 defaults are safe to
use. So we could simply drop the tuning from the profile, however it
seems better to set the value explicitly so that the profile overrides
any changes that may have been applied to the parameter due to
misconfiguration.

Resolves: rhbz#1701394

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2019-06-06 10:52:24 +02:00
Ondřej Lysoněk
800945d091 Drop profile sap-hana-vmware
As discussed in rhbz#1672213, the sap-hana-vmware profile is not needed
anymore and it only confuses users. Let's drop it.

Resolves: rhbz#1715541

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2019-06-06 10:52:15 +02:00
Ondřej Lysoněk
96363628f7 virtual-host: Fix setting force_latency
The force_latency parameter belongs to the cpu plugin, so that's the
section it needs to be in.

Fixes #132
Resolves: rhbz#1569375

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2019-04-25 10:47:18 +02:00
Jaroslav Škarvada
b4d9dfc31c
realtime-virtual-host: fixed tscdeadline_latency.flat path
Also fixed some mismatched whitespaces.

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2019-04-05 10:49:17 +02:00
Ondřej Lysoněk
f52be8843b powersave: Fallback to the 'powersave' scaling governor
Fallback to the 'powersave' CPU scaling governor if 'ondemand' is
not available. This can happen if the intel_pstate driver is active - at
least on newer kernels, the only available governors are 'powersave' and
'performance' if the driver is active.

As far as we can tell, the 'powersave' governor is the closest to the
'ondemand' governor.

Resolves: rhbz#1679205

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2019-03-06 11:41:56 +01:00
Ondřej Lysoněk
8de59ffee2 balanced: Fallback to the 'powersave' scaling governor
Fallback to the 'powersave' CPU scaling governor if 'conservative' is
not available. This can happen if the intel_pstate driver is active - at
least on newer kernels, the only available governors are 'powersave' and
'performance' if the driver is active.

As far as we can tell, the 'powersave' governor is the closest to the
'conservative' governor.

Resolves: rhbz#1679205

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2019-03-06 11:41:56 +01:00
Jaroslav Škarvada
aa5bda3ce1
balanced: added explicit priority to CPU plugin instance
Related: #158

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2019-03-06 11:28:56 +01:00
Jaroslav Škarvada
ec4ce18c8f
Merge pull request #158 from watologo1/fix_conservative_module_loading
conservative governor may be compiled as module and needs explicit lo…
2019-03-06 11:25:21 +01:00
Petrillo, Neale Angelo
8f6433336d Removed superfluous sched_migration_cost_ns declaration
kernel.sched_migration_cost_ns=5000000 was being defined here even though it was defined in the included latency-performance profile. Removed to eliminate redundancy.
2019-02-22 12:52:51 -05:00
Thomas Renninger
af269d11ae conservative governor may be compiled as module and needs explicit loading
Tested on an AMD machine with acpi-cpufreq kernel driver providing
ondemand, conservative,... governors.

Without this line, one gets:
tuned.plugins.plugin_cpu: ignoring governor 'conservative' on cpu 'cpu7', it
is not supported

when switching to balanced profile.
With this line you see:
tuned.plugins.plugin_cpu: setting governor 'ondemand' on cpu 'cpu2'

Be careful: Order matters!
tuned seem to read profile config file line by line or section by section
and directly tries to apply things.

If order of these lines are exchanged:
[modules]
cpufreq_conservative=+r

[cpu]
governor=conservative

you fall back to previous error again. Therefore the newly introduced
[modules] section is not put at the end, but nearly at top.
2019-02-13 15:38:49 +01:00
Neale Petrillo
da6a2925af
Update tuned.conf 2019-01-30 14:41:11 -05:00
Neale Petrillo
6c8c9ce837
Update tuned.conf 2019-01-30 14:30:39 -05:00
Petrillo, Neale Angelo
550a3f1d1e Initial commit of HPC compute profile 2019-01-25 21:13:54 -05:00
Jaroslav Škarvada
26db89de18
mssql: updated tuning
Added vm plugin option 'transparent_hugepage.defrag'.

Resolves: rhbz#1660178

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2019-01-08 15:07:03 +01:00
Jaroslav Škarvada
c4a0aef63d
functions: reworked setup_kvm_mod_low_latency to count with kernel changes
It updates the KVM modprobe file if its content differs from what's
supported on the current system. It may look a bit over-engineered, but
it's done this way to lower the possibility of race condition.

Resolves: rhbz#1649408

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2018-11-22 17:38:12 +01:00
Ondřej Lysoněk
1b80d4eac2 Disable KSM only once, re-enable it only on full rollback
Disabling the ksm and ksmtuned services during boot seems to cause
problems, so do it only once when the profile is first applied and
reenable the services only when full rollback is required.

Resolves: rhbz#1622239

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2018-11-21 11:27:44 +01:00
oliel
355a9d0dc2
Update tuned.conf 2018-11-15 14:18:20 +02:00
oliel
b2762e50cf
Update tuned.conf 2018-11-15 07:49:00 +02:00
Ori_Liel
8622925c5c Make virtual-host identical to latency-performance
The default tuned profile for an oVirt cluster is "virtual-host".
Recently, testing at customer sites and performance labs has shown
that "latency-performance" yields better results. This patch makes
virtual-host profile identical to latency-performance. This seems
better than uniting them since this way we maintain the possibility
to tweak them in different ways in the future according to further
findings.

Change-Id: I1a64fac22364b17de1279a3e1f37a6b7eb0fe61b
Bug-Url: https://bugzilla.redhat.com/1588932
Signed-off-by: Ori_Liel <oliel@redhat.com>
2018-10-15 15:58:42 +03:00
Jaroslav Škarvada
ec52b52a40
realtime-virtual-guest: run script.sh
Related: rhbz#1616043

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2018-09-06 13:16:55 +02:00
Marcelo Tosatti
efcb477299 start/stop rt-entsk daemon on initialization/shutdown
The rt-entsk application, part of newer rt-setup packages,
worksaround a latency issue with static key
IPI's. What it does it:

/*
 * Open a socket, and enable timestamping on it.
 *
 * This is to avoid Chrony from changing timestamping
 * user count from 0->1 and vice-versa, causing
 * static key enable/disable IPIs.
 *
 */

Start/stop the systemctl service from the realtime-virtual-host
and realtime-virtual-guest profiles.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2018-08-31 13:28:20 +02:00
Luiz Capitulino
d1264ba3bf tuned: use systemctl mask in KSM disable code
KSM disable code is reimplementing systemctl mask command.
Note only that, but it seems a race is possible where the ksm
services may be starting at the same time as disable_ksm()
is running. I believe the mask command should fix that.

There's an important difference in this new version: we don't
try to start KSM when switching away from the cpu-partitioning
profile. This means KSM will probably remain disabled until
the next reboot.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2018-08-31 11:37:51 +02:00
Jaroslav Škarvada
1cce9d79e9
Use online CPUs for cpusets calculations instead of present CPUs
resolves: rhbz#1613478

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2018-08-27 00:23:51 +02:00
Marcelo Tosatti
4790e570ce realtime-virtual-host: pin only the vcpu thread to isolated pCPU (v2)
As noted in the bugzilla ticket

https://bugzilla.redhat.com/show_bug.cgi?id=1554851

The QEMU I/O thread can interrupt the time measurement
of the timer. To avoid this problem, only
pin the vCPU thread.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Reviewed-and-Tested-by: Luiz Capitulino <lcapitulino@redhat.com>

v2:
   - Use unix sockets (Luiz)
   - Proper numeric output (Luiz)
2018-07-09 18:34:14 +02:00
Ondřej Lysoněk
c2dfc1f806 profiles: Replace calls to defirqaffinity.py
In the cpu-partitioning profile, IRQ affinity change is already done
as part of the 'isolated_cores' option of the scheduler plugin, so
calling defirqaffinity is, at best, redundant. So let's remove the call.

In the realtime* profiles, it's essentially the same, except that tuna
was used instead of isolated_cores. So let's use built-in functionality
instead of tuna and drop calls to defirqaffinity.

Resolves: rhbz#1590937

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2018-07-03 00:15:34 +02:00
Ondřej Lysoněk
66b247a7e9 cpu-partitioning: Modify irqbalance config regardless of defirqaffinity exit code
Previously the irqbalance config was not modified if setting the affinity
of at least one IRQ failed. That does not make much sense to me - it can
result in irqbalance assigning isolated CPUs to IRQs, even if it can be
prevented.

Even if affinity cannot be changed for any of the present IRQs,
hypothetically it can happen (I think) that new hardware is hotplugged,
and the affinity of its IRQ can be changed. So let's always modify the
irqbalance config for good measure.

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2018-07-02 23:53:21 +02:00
Ondřej Lysoněk
c170b69602 realtime-virtual-host: Fix verification in script.sh
The code was completely broken. Jaroslav and I think the purpose
of the code was to check that the files
/sys/module/kvm/parameters/kvmclock_periodic_sync
/sys/module/kvm_intel/parameters/ple_gap
contain "0", which we think is the (at least intended) result of
profiles/functions:setup_kvm_mod_low_latency(). So I'm fixing it
to do that.

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2018-07-02 23:14:34 +02:00
Jaroslav Škarvada
64517b7785
oracle: updated the profile to be in sync with KCS 39188
Resolves: rhbz#1447323

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2018-06-06 17:42:54 +02:00
Jaroslav Škarvada
4fa1b8a4bb
profiles: added mssql profile
Resolves: rhbz#1442122

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2018-06-05 17:55:34 +02:00
Ondřej Lysoněk
726ea77b70 Use value powersave|power for EPB in powersave profile
Since Linux 4.13 the value "powersave" in the x86_energy_perf_policy
program has been renamed to "power". Let's try both values when
applying the powersave profile.

Resolves: rhbz#1508468

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2018-05-14 09:45:59 +02:00
John Pittman
8cccd5a0eb tuned: Add readahead comment to throughput-performance tuned.conf
A common source of confusion within tuned is the lack of suffix
on the readahead specification in the throughput-performance
tuned.conf. This confusion is resolved, in general, by comparing
the value, for example, to blockdev or lvdisplay output. Avoid
future end-user confusion by adding a comment to the
throughput-performance tuned.conf file, explaining that the default
is in KiB, and noting the allowance of a sector suffix as well.

Signed-off-by: John Pittman <jpittman@redhat.com>
2018-03-07 15:53:39 -05:00
Jaroslav Škarvada
cd52c9ea08
oracle: fixed ip_local_port_range parity warning
Resolves: rhbz#1527219

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2018-03-02 23:37:51 +01:00
Ondřej Lysoněk
6a9068ed0a Consistently use 'balance' instead of 'rebalance' in cpu-partitioning
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2018-03-01 16:05:13 +01:00
Jaroslav Škarvada
280ac3d3f9
cpu-partitioning: fixed comment in cpu-partitioning-variables.conf
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2018-02-28 17:17:53 +01:00
Luiz Capitulino
c614ad03ff realtime-virtual-host: script.sh: add error checking
At the very least we get errors logged.

Resolves: rhbz#1461509

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2018-02-22 21:03:16 +01:00
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