Dynamic tuning is PoC implementation and it can cause many problems
especially with some networks drivers where it can interrupt network
connections and also with modern CPUs where it can worsen power
consumption by limiting CPUs from entering deeper C-states. Now, when
TuneD is going to replace power-profiles-daemon these problems can
accumulate and cause bad user experience.
RHEL disables dynamic tuning downstream for a long time, so follow it
and also disable it by default upstream. People who knows what they are
doing can still enable it.
Fixes#588
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
- add remove parameter to set command
- minor fixes for logging messages
- remove device_module_name
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Add simplistic intel uncore plugin to so that uncore maximum and
minimum frequency can be set.
For example lowering uncore maximum frequency can have significant
impact on the total power consummation of SoC.
Refer to the following link to get details:
https://docs.kernel.org/admin-guide/pm/intel_uncore_frequency_scaling.html
When system with TPMI (Topology Aware Register and PM Capsule Interface)
is detected only devices configured via TPMI are used, since configuring
via deprecated (package/die) interface create conflict on new systems.
Plugin allow to configure frequency per individual uncore units, example
profile config options can look like this:
[intel_uncore_all0] # power save
type=intel_uncore
devices=uncore0*
max_freq_khz=2000000
[intel_uncore_10] # performance
type=intel_uncore
devices=uncore10
min_freq_khz=4000000
[intel_uncore] # for all others save power with little performance cost
max_freq_khz=4600000
For systems where maximum/minimum configured frequency is above/below
the system limits, values are capped to the limit. Wrong configuration
i.e. maximum frequency below minimum frequency is skipped and errors
are logged.
TODO:
- Create matching functions in (tuned/profiles/functions) to allow
to identify cpus belongs to uncore unit as well uncore TPMI unit
based on power domain/package/die.
- Add uncore frequency configuration to basics or specialistic profiles.
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
This adds the [scheduler] plugin option `irq_process`, which
controls whether the plugin performs any tuning of IRQ affinities.
Resolves: RHEL-21923
Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
This change does not attempt to _wifi_set_power_level()
unless /proc/net/wireless exists.
Other changes: fix a typo.
Signed-off-by: Jiri Mencak <jmencak@users.noreply.github.com>
Resolves: RHEL-16966
At this point, the plugin supports setting a single sysfs attribute,
platform_profile.
The 3 basic ACPI platform profiles are low-power, balanced, and
performance. These are mapped to the generic powersave,
balanced, and *-performance TuneD profiles.
The `force_latency` option already supports using C-state IDs/names.
This commit extends the support to the `pm_qos_resume_latency_us` option,
together with the ability to set fallback values (including the special
"n/a" value which disables all C-states).
Resolves: RHEL-21129
If delete and append kargs args are the same in the same order
there is no functional differences so we can safely skip
calling rpm-ostree kargs and avoid creating a new rpm-ostree
deployment.
Resolves: RHEL-20767
Signed-off-by: Etienne Champetier <e.champetier@ateme.com>
It requires slight internal plugin API change, thus 3rd party plugins
needs updating.
Namely the 'command_set' methods for devices were extended by the
'remove' boolean parameter which is set to 'True' on the hotplug remove
event. Then the method should silent the ENOENT errors where
appropriate, because the device interface may be removed (by
kernel/udev) before the method finishes.
Resolves: RHEL-11342
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
Just explain what isolated_cores= is for and recommend to only have one
isolated_cores= line to avoid wrong system configuration.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Resolves: RHEL-16469
Since intel_pstate and amd-pstate use the same per-CPU interface
for setting EPP hints, the current cpu plugin supports amd-pstate
out of the box.
This commit modifies current P-state related logs and variable
names to be explicit about the support for amd-pstate.
Note that while intel_pstate supports global attributes such as
`max_perf_pct`, amd-pstate does not.
Python 3.12 is more strict about correct escaping and
outputs SyntaxWarning for invalid escape sequences that
were previously silently corrected.
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
Resolves: RHEL-15137
Appropriate commands are added to tuned-adm as well.
`get_instances`: Retrieves a list of active instances of a given
plugin or all active instances.
`instance_get_devices`: Retrieves a list of devices assigned
to a given instance.
Resolves: RHEL-3707
The logic for converting sysctl names to paths did not work for
sysctls like "net.ipv4.conf.bond0/355.forwarding" because it
contains a slash. According to the sysctl.d manpage, the dots
and slashed must be interchanged if the first separator is a
dot, which we assume.
Improve error log by printing all arguments passed to command.
This helps in troubleshooting issues where just knowing the command is
not enough, we need more details on which settings, devices and options
has caused this error.
Signed-off-by: Kenneth D'souza <kennethdsouza94@gmail.com>