1
0
Fork 0
Commit graph

17 commits

Author SHA1 Message Date
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
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
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
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
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
11686d59fe cpu-partitioning: enable timer migration
As the cpu-partitioning profile does not use isolcpus=,
the kernel can end up creating long living timers on
nohz_full CPUs during early boot. Those timers will
fire later, causing jitter.

However, recent Linux kernel will always try to migrate
unpinned timers away from nohz_full CPUs when timer
migration is enabled which is what we want.

NOTE: Older kernels would migrate unpinned timers from
      idle CPUs to busy CPUs without regard if the
      CPU is nohz_full. This would certainly cause
      trouble to applications that takes 100% of the
      CPU in user-space (eg. DPDK). So, enabling
      timer migration is only safe on recent kernels.

Resolves: rhbz#1408308

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2017-01-10 13:44:28 +01:00
Jaroslav Škarvada
bac41784a3 cpu-partitioning: removed spurious whitespace
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2016-10-07 12:29:37 +02:00
Jaroslav Škarvada
db6947da2f profiles: added new profile cpu-partitioning
The profile is delivered in the new tuned-profiles-cpu-partitioning subpackage.
Also moved defirqaffinity.py to the base package to allow other profiles
to use it.

Resolves: rhbz#1359956

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2016-10-07 11:56:57 +02:00