1
0
Fork 0
Commit graph

1582 commits

Author SHA1 Message Date
Jaroslav Škarvada
e4733cdb63
new release (2.16.0)
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-07-21 20:41:55 +02:00
Jaroslav Škarvada
be5d8d60fd
Merge pull request #373 from jmencak/skip_grub_config_true_false
bootloader: make skip_grub_config consistent with initrd_remove_dir
2021-07-21 20:31:13 +02:00
Jiri Mencak
ba08c1737d bootloader: make skip_grub_config consistent with initrd_remove_dir
Currently, skip_grub_config and initrd_remove_dir options in the
bootloader plug-in are inconsistent.  This commit fixes this issue.

The skip_grub_config=VALUE does not change grub configuration if VALUE
is true.  However, cmdline options are still processed, and the result
is used to verify the current cmdline.  Only 'y', 'yes', 't', 'true' and
'1' (case insensitive) are accepted as true values for this option.
Other values are interpreted as false.

Example:

[bootloader]
skip_grub_config=True
cmdline=+systemd.cpu_affinity=1

Signed-off-by: Jiri Mencak <jmencak@users.noreply.github.com>
2021-07-21 11:55:52 +02:00
Jaroslav Škarvada
bc3f737a00
new release (2.16.0-rc.1)
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-07-07 23:46:06 +02:00
Jaroslav Škarvada
b48ccbe88e
Merge pull request #332 from CZerta/python_decorator_removal
Removing depedency on python-decorator package.
2021-07-07 14:17:09 +02:00
Jaroslav Škarvada
e4c0daab5d
Merge pull request #361 from adriaan42/bootloader-skip-grub-config
bootloader: support for systems that don't have grub installed
2021-07-07 14:15:10 +02:00
Adriaan Schmidt
8f19120379 bootloader: support for systems that don't have grub installed
This makes some changes to address systems that don't support changing
of grub configurations

* Introduce new option "skip_grub_config". When this is set, no changes to grub
  config are attempted. cmdline options are still processed, and the result is
  used to verify the current cmdline.
* Improve reporting on expected/found/missing cmdline arguments.
* Add "no_error = True" to the call that reads /etc/default/grub in _bls_enabled().

Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
2021-07-07 11:16:08 +00:00
Jan Zerdik
28a4149685 Removing depedency on python-decorator package.
Resolves: rhbz#1936421

Signed-off-by: Jan Zerdik <jzerdik@redhat.com>
2021-07-07 10:40:41 +02:00
Jaroslav Škarvada
7fc63d571a
Merge pull request #330 from CZerta/fixing_active_profile
Wrong signal while switch to nonexisting profile
2021-07-01 22:47:12 +02:00
Jaroslav Škarvada
b0d2456dd0
Merge pull request #359 from CZerta/bootloader_rpm_ostree_support
Adding support for rpm-ostree system to bootloader plugin
2021-07-01 22:01:35 +02:00
Jan Zerdik
835db34f8a Adding support for rpm-ostree system to bootloader plugin.
Resolves: rhbz#1950164

Signed-off-by: Jan Zerdik <jzerdik@redhat.com>
2021-07-01 13:32:42 +02:00
Jaroslav Škarvada
6beca87e84
Merge pull request #365 from yarda/sched-changes
scheduler: abstract sched_ and numa_ knobs
2021-07-01 12:54:25 +02:00
Jaroslav Škarvada
c6d6fdcc4c
profiles: drop sched_ tuning where appropriate
According to the performance team measurements the sched_ tuning
should be dropped in several profiles.

Resolves: rhbz#1957829

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-06-30 22:00:19 +02:00
Jaroslav Škarvada
a936fb8844
scheduler: abstract sched_ and numa_ knobs
New kernels (5.13 and newer) moved some sched_ and numa_ knobs from
the sysctl to the debugfs, thus add and abstract these knobs under the
scheduler plugin. With help of this abstraction it will write
the tuning to the correct place according to the kernel used.

Example:
[scheduler]
sched_migration_cost_ns = 500000

Will work on the old kernel the same way as:
[sysctl]
kernel.sched_migration_cost_ns = 500000

I.e. it will write '500000' to the:
/proc/sys/kernel/sched_migration_cost_ns

And on the new kernel it will write '500000' to the:
/sys/kernel/debug/sched/migration_cost_ns

Also updated TuneD profiles.

Resolves: rhbz#1952687

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-06-30 19:45:27 +02:00
Jaroslav Škarvada
7118c9463d
Merge pull request #364 from vianpl/rhbz#1974820
realtime-virtual-*: Set irqaffinity through kernel command line
2021-06-28 20:32:54 +02:00
Jaroslav Škarvada
88ded8d1fc
Merge pull request #363 from vianpl/rhbz#1976825
realtime-virtual-host: Disable kvm.nx_huge_pages module option
2021-06-28 20:32:13 +02:00
Nicolas Saenz Julienne
e4a0e48886 realtime-virtual-host: Disable kvm.nx_huge_pages module option
The 'nx_huge_pages' option, will force any executable page mapping to be
performed at 4KiB granularity and requires any existing overlapping
huge-page mapping to be also split in 4KiB chunks[1]. This is due to a HW
bug that doesn't affect our NFV use-cases.

The way a huge-page mapping is dropped is by simply deleting the EPT
entry and flushing TLB caches on all affected CPUs. Next vCPU access to
that address will trigger an EPT_VIOLATION, which will jump into the
host for it to handle the page-fault. In our specific case, this means
all isolated CPUs running oslat will hit an EPT_VIOLATION almost exactly
at the same time. Which is bad enough already, but, given our systems
might have a huge number of isolated CPUs, will also create a lot of
contention over the KVM MMU lock. This has been observed to trigger
~100us latency spikes while testing with oslat.

So let's disable the 'kvm.nx_huge_pages' module option.

[1] see kernel commit b7e8c8303ff28

Resolves: rhbz#1976825
Signed-off-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
2021-06-28 18:53:38 +02:00
Nicolas Saenz Julienne
288ac9ba9d realtime-virtual-*: Set irqaffinity through kernel command line
I/O APIC, one of intel's interrupt controllers, can only change the
affinity on an IRQ line during an EOI (end of interrupt)[1]. In other
words, on boot, although tuned will set a preferred IRQ affinity, it
might not be applied until the next time the interrupt is triggered.
This might be right away, or hours later while oslat or a
latency-sensitive workload is running.

To mitigate this set the 'irqaffinity='kernel command-line[2] option to
match the non-isolated CPU mask when running the realtime-virtual-*
profiles. This way we'll get the right affinity regardless of the
situation stated above.

[1] For more reference see kernel's ioapic_ack_level() function and the
    IRQD_SETAFFINITY_PENDING flag.

[2] Actually, this is why irqaffinity was introduced in the first place,
    see kernel commit fbf198030e0b0.

Resolves: rhbz#1974820
Signed-off-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
2021-06-28 18:49:29 +02:00
Jaroslav Škarvada
5fbc59c9ba
Merge pull request #360 from yanirq/master
Fix conditional order for setting net device param
2021-06-22 10:11:27 +02:00
Yanir Quinn
f7e7269e92 Fix conditional for setting net device param
The conditional for setting a net device parameter has
a faulty order where it can potentially try to first cast a string to int
in a wrong manner and only then check if the value is a specific integer value.

current order:
1. check if a net device has a combined channel containing 0
2. check if a net device has a combined channel containing 'n/a'

fixed order:
robust check to see if device parameter is either 0 or 'n/a'

Signed-off-by: Yanir Quinn <yquinn@redhat.com>
2021-06-22 10:39:02 +03:00
Jaroslav Škarvada
94892671ee
Merge pull request #357 from yarda/multiple-profiles-loading
profiles: fix loading multiple profiles if there are repeating profiles
2021-06-09 14:08:26 +02:00
Jaroslav Škarvada
bd6697f8f4
profiles: fix loading multiple profiles if there are repeating profiles
The original idea behind this patch is credited to
Jiří Mencák <jmencak@redhat.com>.

Resolves: rhbz#1825882

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-06-09 11:00:18 +02:00
Jaroslav Škarvada
d32240c7bb
Merge pull request #356 from pjps/RHBZ#1820626
RHBZ#1820626 profiles: enable isolate_managed_irq by default
2021-06-08 09:21:15 +02:00
P J P
dc8bdeff55 profiles: enable isolate_managed_irq by default
Enable 'isolate_managed_irq' parameter by default. It is important
for -realtime systems. When it is enabled, kernel directs interrupts
to the housekeeping CPUs and thus reduces latencies for the isolated
ones.

Fixes: RHBZ#1820626
2021-06-07 18:28:52 +05:30
Jaroslav Škarvada
31f1d0f45b
Merge pull request #352 from pjps/RHBZ#1817827
RHBZ#1817827 profiles: add isolate_managed_irq & netdev_queue_count variables
2021-06-07 00:36:36 +02:00
P J P
f860e726b9 profiles: add isolate_managed_irq & netdev_queue_count variables
For realtime KVM host and guests it is important to use housekeeping
CPUs for processing interrupts (IRQs) and network packet transmission.
So that isolated CPUs are used for -realtime tasks assigned to them.

The 'isolate_managed_irq' and 'netdev_queue_count' variables help
to configure kernels towards this end. Users can define these
variables via tuned(8) configuration files.

Fixes: RHBZ#1817827
2021-06-04 11:31:08 +05:30
Jaroslav Škarvada
92771e39b7
Merge pull request #354 from superjamie/network-udp-mem
network-throughput: Remove explicit udp_mem amount
2021-06-03 19:53:03 +02:00
Jaroslav Škarvada
7370fe723a
Merge pull request #335 from yarda/mssql-update
mssql: update profile to be in sync with MS recommendations
2021-06-03 18:34:05 +02:00
Jaroslav Škarvada
f9711b147c
mssql: update profile to be in sync with MS recommendations
Resolves: rhbz#1942733

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-06-03 17:58:31 +02:00
Jaroslav Škarvada
be66dd76a2
Merge pull request #334 from yarda/project-rename
Project renamed to TuneD
2021-06-03 17:41:27 +02:00
Jaroslav Škarvada
78df85affe
Merge branch 'master' into project-rename 2021-06-03 17:20:55 +02:00
Jaroslav Škarvada
91e252aaf8
Merge pull request #355 from yarda/ci-update
tests: added rlRun python detect description to beaker test
2021-06-03 16:42:54 +02:00
Jaroslav Škarvada
871e68bea1
tests: added rlRun python detect description to beaker test
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-06-03 16:08:55 +02:00
Jaroslav Škarvada
aca6e456e6
Merge pull request #353 from yarda/rhel-ci-fix
ci: fix versioning of autobuild packages
2021-06-03 16:00:06 +02:00
Jamie
89eef3760d
network-throughput: Remove explicit udp_mem amount
Explicitly setting a value for udp_mem does not make sense.

An explicit value does not take into account how much RAM the user's system
has, so setting values here like "12G 16G 64G" works for few specific use
cases but makes no sense for others.

This actually could cause problems if applied on a system with <16G RAM
and UDP protocol usage is allowed to grow as large as it likes, causing
kernel memory pressure in other areas.

Remove these values for now. If still required, a better way to calculate
a larger value based on system RAM can be implemented later.

Signed-off-by: Jamie Bainbridge <jamie.bainbridge@gmail.com>
2021-06-03 14:35:59 +10:00
Jaroslav Škarvada
4f1901991e
ci: fixed RHEL-8
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-06-03 01:22:41 +02:00
Jaroslav Škarvada
ba8fe0d755
ci: fix versioning of autobuild packages
This should create RPM packages for CI named e.g. tuned-2.15.0...
instead of tuned-v2.15.0... It may fix CI provisioning for
RHEL machines (https://github.com/packit/packit-service/issues/1095).

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-06-02 23:57:09 +02:00
Jaroslav Škarvada
73aa08947b
Merge pull request #348 from yarda/ci-fix
ci: beakerlib tests fixes
2021-05-31 09:25:14 +02:00
Jaroslav Škarvada
49b74a8b56
ci: beakerlib tests fixes
Switch from the deprecated execution method.
Fix for the bz1798183-RFE-support-post-loaded-profile beakerlib test.

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-05-20 14:54:45 +02:00
Jaroslav Škarvada
01fecec1d1
Merge pull request #344 from yarda/rhbz1957897
cpu-partitioning,realtime: set cpumasks of all workqueues
2021-05-20 10:59:25 +02:00
Jaroslav Škarvada
65780a0e19
Merge pull request #349 from yarda/recommender-not-ignore-chasis-if-no-dmidecode
recommend: do not ignore chassis_type if there is no dmidecode
2021-05-19 10:10:47 +02:00
Jaroslav Škarvada
656005b9b5
Merge pull request #347 from jtval/docupdate-includedprofiles
adding profile descriptions included in downstream
2021-05-18 12:30:50 +02:00
Jacob Valdez
57f4983465 adding profile descriptions included in downstream 2021-05-18 08:19:39 +02:00
Jaroslav Škarvada
8e6767a125
recommend: do not ignore chassis_type if there is no dmidecode
Previously, if there wasn't dmidecode all 'chassis_type' matches
were ignored. This is not correct, because we cannot enforce
chassis type. Now in such cases the chassis_type is matched
against empty string.

I.e. previously the following matched in case of no dmidecode:
something_that_matched
chassis_type=.*(Notebook|Laptop|Portable).*

Now it doesn't match, but the previous behavior can be still
emulated by e.g.:
something_that_matched
chassis_type=(.*(Notebook|Laptop|Portable).*)|^$

Resolves: rhbz#1959889

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-05-17 23:16:54 +02:00
Jaroslav Škarvada
16d4acbaca
Project renamed to TuneD
The 'D' is now capital to clarify pronunciation.

DBus service name is kept as '/Tuned' not to break
backward compatibility.

This will also need update of downstream tests
which rely on the specific output strings containing
the name.

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-05-17 22:09:02 +02:00
Jaroslav Škarvada
cc2a5e4f33
Merge pull request #339 from yarda/rhel-9-syspurpose-fix
syspurpose is provides by subscription-manager on RHEL-9
2021-05-17 22:05:40 +02:00
Jaroslav Škarvada
1a3245f47f
Merge pull request #345 from pjps/RHBZ#1947858
RHBZ#1947858 profiles: improve realtime verify functions
2021-05-13 12:11:13 +02:00
P J P
6407ca44c6 profiles: improve realtime verify functions
tuned(8) realtime-virtual-{host|guest} profiles set Kernel and
KVM module parameters via script.sh plugin. These parameters are
to be verified in a verify() function, invoked by tuned-adm verify
command.

This patch updates verify() functions to validate KVM module
parameters.

It moves kernel parameters to the tuned.conf file under the
[sysfs] & [sysctl] plugin sections. And removes call to
disable_ksm function, no longer required.

Fixes: RHBZ#1947858
2021-05-13 15:21:48 +05:30
Jaroslav Škarvada
38f7e63611
cpu-partitioning,realtime: set cpumasks of all workqueues
Related: rhbz#1957897

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2021-05-12 21:17:27 +02:00
Jaroslav Škarvada
e25b02f90b
Merge pull request #340 from niteshnarayanlal/rhbz#1944686
plugin_net: Improve error checking for device parameters
2021-04-30 19:50:22 +02:00