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>
To remove the source directory from which the initrd image is build, the
following can be used:
[bootloader]
initrd_remove_dir = True
initrd_add_dir = /tmp/tuned-initrd.img
This will create initrd image from the /tmp/tuned-initrd.img directory and
and then it removes the tuned-initrd.img directory from the /tmp.
Related: rhbz#1414098
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
Also updated the core Tuned engine to support instance.workdir to get
the directory name the profile was loaded from.
Related: rhbz#1414098
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
The bootloader plugin now supports the following options:
initrd_add_img=IMAGE
initrd_add_dir=DIR
initrd_dst_img=PATHNAME
The 'initrd_add_img' adds initrd overlay named IMAGE. The IMAGE is
added from the current profile directory. If IMAGE begins with '/' it's
taken as absolute path (e.g. initrd_add_img="/root/overlay.img").
The 'initrd_add_dir' creates initrd image from the DIR at first and then
adds the image as a overlay. The DIR is taken from the current profile
directory. If DIR begins with '/' it's taken as absolute path.
The 'initrd_dst_img' sets the name and location of the resulting initrd
image. Usually it is not needed to set it. By default the location of
initrd images is /boot and the name of the image is taken as a basename
of IMAGE or DIR. This can be overridden by 'initrd_dst_img'
Currently grub2-mkconfig doesn't support initrd overlays, so the initrd
settings are lost after 'grub2-mkconfig -o /boot/grub2/grub.cfg' is
issued. There is grub2 RFE bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=1427899
Resolves: rhbz#1414098
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
The plugins were not getting cleaned up properly, so e.g. after
a profile switch instances of the Plugin class would get piled up.
This fixes commit 363d74815a.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
A new option 'devices_udev_regex' can be used in profile
configuration to specify devices to which a plugin instance
should be applied.
The option can contain a python regular expression, as specified
in https://docs.python.org/2/library/re.html#regular-expression-syntax.
The expression is effectively matched against the output of
udevadm info --query=property -n <device_path>
If the option 'devices_udev_regex' is specified, the 'devices' option
is ignored. If it is not specified, then the matching is done the same
way as previously, i.e. against 'devices'.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
The _device attribute should always be the same as the union of
_assigned_devices and _free_devices, therefore it's redundant.
Its existence in my opinion brings only confusion and a potential
source of inconsistencies.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
I.e.
[myaudio]
type=audio
Will show in log as:
myaudio (audio)
and:
[audio]
Will show in log as:
audio
I.e. if the instance name and the plugin name is the same it will
not log the plugin name in braces.
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
Resolves: rhbz#1246172
Allow specifying order in which individual plugin instances are to be
executed.
Each instance can be given the 'instance_priority' option
in the profile configuration. The value must be an integer (it can be
negative). If no priority is specified, it is inherited from the parent
profile, or set to the default instance priority, if no parent profile
specifies the priority for that instance.
The default instance priority is by default zero, but it can be set to
a different value using the 'default_instance_priority' option in the
global configuration file.
Creating plugin instances, assigning devices to instances, initializing
instances, applying, updating and verifying tuning are all done in order
from lowest numerical instance priority to highest. Unapplying tuning and
destroying instances is done in reversed order.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
Previously if you ran 'tuned -l log', it would crash with:
OSError: [Errno 2] No such file or directory: ''
This patch fixes the bug.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
The target executes pylint on all *.py files, except for those
in the ./tests and ./experiments subdirectories.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
Remove the tuned.gtk.manager module. It doesn't seem to have been used
anywhere _ever_, it's broken (the only class it contains calls
a constructor with incorrect number of parameters) and it seems to be
completely useless anyway.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
This fixes the following pylint errors:
************* Module tuned.gtk.gui_plugin_loader
E:145,18: TunedException is not callable (not-callable)
E: 45,11: Undefined variable name 'GTKPluginLoader' in __all__ (undefined-all-variable)
************* Module tuned.gtk.managerException
E: 44, 4: method already defined line 41 (function-redefined)
************* Module tuned.gtk.gui_profile_loader
E:126, 4: method already defined line 95 (function-redefined)
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
Initialize some attributes of PluginLoader to avoid the following
pylint errors:
E: 21,14: Instance of 'PluginLoader' has no '_namespace' member (no-member)
E: 22,14: Instance of 'PluginLoader' has no '_prefix' member (no-member)
E: 23,14: Instance of 'PluginLoader' has no '_interface' member (no-member)
The attributes were initialized only in subclasses.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
Rename the _grub2_cfg_file attribute to _grub2_cfg_file_name. This is to
avoid the following pylint error message:
An attribute defined in tuned.plugins.plugin_bootloader line 30 hides this method.
The fact that the method was hidden didn't present itself in any way
during execution, because the method had been saved in a collection
(and accessed only from the collection after that) prior to becoming
hidden.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
Provide the correct number of parameters to the '_set_readahead' method.
This fixes a traceback when setting the 'readahead_multiply' option.
I assume the 'sim' parameter to '_set_readahead' means 'simulated' (it
is handled in that sense), so we should set the value to False, because
we are actually enabling/disabling the tunning here.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
Now it supports the following extended syntax:
parent profile:
[bootloader]
cmdline=opt1 opt2
child profile:
[bootloader]
cmdline1=+opt3
cmdline2=opt4
cmdline3=-opt2
Resulting cmdline:
opt1 opt3 opt4
It recognizes "cmdline*" and postprocess it to extend the inheritance.
It recognizes '+' and '-' on the very beginning of the option and adds
or removes the string from the command line. When using
'+' or '-' it takes the string after the sign till end of the line. To
add option starting with e.g. '+' you need to use '++opt'. If '+' is
omitted in succesive command lines, it's taken implicitly (e.g. opt4).
If you need to replace the whole command line in child profile, use:
[bootloader]
replace=true
cmdline=opt1 opt2
This will drop all 'cmdline*' setting from the parent profile(s).
Resolves: rhbz#1274464
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>