Skip to content

tlp.conf: Make the profile-specific nature of the parameters clearer? #899

Description

@linrunner

Situation

With TLP 1.9.0, an additional operating mode called power-saver (for maximum energy savings) was introduced. The previously existing modes for AC power and battery operation were renamed performance and balanced. From then on, the modes were referred to as “profiles".

To reflect this in tlp.conf, parameters with a new suffix, _ON_SAV, were introduced. The existing suffixes for the old modes, _ON_AC and _ON_BAT, were left unchanged and directly assigned to the performance and balanced profiles.

The result shows the following example:

CPU_ENERGY_PERF_POLICY_ON_AC # Assigned to the performance profile
CPU_ENERGY_PERF_POLICY_ON_BAT # Assigned to the balanced profile
CPU_ENERGY_PERF_POLICY_ON_SAV # Assigned to the power-saver profile

This approach was deliberately chosen at the time to ensure backward compatibility with the large base of existing customised user configurations.

With TLP 1.10.0, another complication arose that made the configuration harder to understand. In response to user feature requests, the fixed relationship AC power == performance and battery power == balanced was removed and made configurable via TLP_PROFILE_AC and TLP_PROFILE_BAT instead.

Recently, I received feedback that this situation is confusing, as people still tend to associate the suffixes _ON_AC and _ON_BAT with the power sources themselves rather than the assigned profiles.

Proposal

The following alternative was proposed, which clearly indicates the assignment to the profiles:

CPU_ENERGY_PERF_POLICY_ON_PRF # Assigned to the performance profile
CPU_ENERGY_PERF_POLICY_ON_BAL # Assigned to the balanced profile
CPU_ENERGY_PERF_POLICY_ON_SAV # Assigned to the power-saver profile

Since backward compatibility with existing configurations must not be compromised, TLP would need to map the old parameter names to the new ones at runtime. In other words, your configuration files remain as they are; TLP converts the parameters each time it runs. I believe this is feasible. On the other hand, I can't imagine a reliable, automated way to rewrite the configuration files.

Since older versions of TLP remain in use for extended periods due to the distribution release cycles, the docsite would need to list the old names alongside the new ones for all parameters. That would make the documentation harder to read.

Questions for you:

  1. From your perspective, do the advantages of the new solution outweigh its disadvantages?
  2. What advantages and disadvantages do you see in the new solution for your specific use cases?
  3. Any other thoughts?

I'm looking forward to your opinions. Thanks in advance for your participation!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions