power-profiles-daemon has the ability to detect battery change events
using upower and to apply different tuned settings based upon whether
plugged into power or not.
In PPD this is used specifically to set the energy performance preference
differently in the 'balanced' profile, but there is no reason that this
concept can't actually apply to all profiles.
Add support for detecting battery change events and apply a profile
specified in ppd.conf for battery in the different PPD states.
With this builtin function it is possible to write now:
[variables]
pstate=${f:intel_recommended_pstate}
[bootloader]
cmdline_pstate=+intel_pstate=${pstate}
The builtin function will return value: disable|active based on the processor
model and pass the proper intel_pstate value to kernel command line in boot time
................................
Intel recommends to use the intel_pstate CPUFreq driver in active mode with HWP
enabled on Ice Lake and later generations processors.This feature allows dynamically
set intel_pstate based on the processor's model. Currently, users need to create a
tuned override if they want to set intel_pstate to active even for newer generation processors.
For older generation processors setting pstate to active can introduce jitters which were
historically seen around and tested with RHEL-7.4.From IceLake generation, intel has fixed these issues.
Signed-off-by: Sabbir Hasan <sahasan@redhat.com>
This adds a check to instance_acquire_devices to ensure
that the plugin actually supports the requested operation.
Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
Currently instance priorities are only used at startup to sort the
instance classes. To enable dynamic creation of instances, we need
to store the priorities, so new instances can be sorted accordingly.
Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
Rename the plugin name as so can be used as placeholder for Uncore
settings for other CPU vendors.
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
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>