If you are using TLP, have you been aware that the Solus package comes with a modified TLP config? To me this was a bit of surprise and I only found out as I was building the package locally for the new TLP version 1.5.0

The TLP configuration provided by Solus disables a few settings like WiFi power saving mode on battery, which is enabled in the original TLP defaults. I assume this was done for good reason due to issues observed in the past, but I have some doubt if this is still required with latest TLP and kernel/drivers.

This are the custom Solus settings as far as I could see:

TLP_DEFAULT_MODE=AC
CPU_SCALING_GOVERNOR_ON_AC=performance
CPU_SCALING_GOVERNOR_ON_BAT=schedutil
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0
SOUND_POWER_SAVE_ON_BAT=0
USB_AUTOSUSPEND=0
WIFI_PWR_ON_BAT=off

It would be good to get some feedback on this topic in the forum based on user experience with TLP.

My preference would be to provide the standard TLP default config as defined by the TLP maintainers and not try to tweak it specifically for Solus.

What's your view/experience?

5 days later

Too bad, seems not many TLP users in this forum 🤔

    palto42 Too bad, seems not many TLP users in this forum 🤔

    Unfortunately, my Linux skills are not very high and I can't contribute much to this thread. I have a laptop with Solus KDE, TLP is installed, but I didn't touch any parameter of the configuration. I wouldn't know what I'm doing, so better to leave it as it is. But I'm very interested in TLP, or whatever that may help me to save battery.

    Thank you for this thread, I'm really interested.

    Current Solus package changes a few settings of the default TLP config, of which some will decrease battery live in order to avoid possible issues for some hardware configurations. My concern is that this is not documented so that the user who installs TLP from Solus repository might be surprised to get other settings than suggested by the TLP project.

    This are the changes with my comments below some of them:

    # Operation mode when no power supply can be detected: AC, BAT.
    # Concerns some desktop and embedded hardware only.
    # Default: <none>
    
    TLP_DEFAULT_MODE=AC
    # [palto42] Looks ok to me, although only required for some corner cases
    
    # Select a CPU frequency scaling governor.
    # Intel processor with intel_pstate driver:
    #   performance, powersave(*).
    # Intel processor with intel_cpufreq driver (aka intel_pstate passive mode):
    #   conservative, ondemand, userspace, powersave, performance, schedutil(*).
    # Intel and other processor brands with acpi-cpufreq driver:
    #   conservative, ondemand(*), userspace, powersave, performance, schedutil(*).
    # Use tlp-stat -p to show the active driver and available governors.
    # Important:
    #   Governors marked (*) above are power efficient for *almost all* workloads
    #   and therefore kernel and most distributions have chosen them as defaults.
    #   You should have done your research about advantages/disadvantages *before*
    #   changing the governor.
    # Default: <none>
    
    CPU_SCALING_GOVERNOR_ON_AC=performance
    CPU_SCALING_GOVERNOR_ON_BAT=schedutil
    # [palto42] Would not touch this, the default kernel settings should cover the best default option. Using "performnace" on AC will cause unnecessary high power consumption on AC with minimal performance improve as far as I can see.
    
    # Set the CPU "turbo boost" (Intel) or "turbo core" (AMD) feature:
    #   0=disable, 1=allow.
    # Note: a value of 1 does *not* activate boosting, it just allows it.
    # Default: <none>
    
    CPU_BOOST_ON_AC=1
    CPU_BOOST_ON_BAT=0
    # [palto42] Assume that this should save battery, but I could not find any data how much it saves compared to the performance impact, so would not touch it.
    
    # Dynamic power management method (DPM): balanced, battery, performance.
    # Note: radeon driver only.
    # Default: <none>
    
    RADEON_DPM_STATE_ON_AC=performance
    RADEON_DPM_STATE_ON_BAT=battery
    # [palto42] I think it depends on the user application in AC and DC mode if this setting is desirable or not, would not touch it.
    
    # Wi-Fi power saving mode: on=enable, off=disable.
    # Default: off (AC), on (BAT)
    
    WIFI_PWR_ON_AC=off
    WIFI_PWR_ON_BAT=off
    # [palto42] This will decrease battery live in order to improve WiFi stability for some hardware. In my view we should keep the TLP default and only user suffering from instable WiFi on attery may disable it.  (I have no issue with default enabled)
    
    # Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
    # A value of 0 disables, >= 1 enables power saving.
    # Note: 1 is recommended for Linux desktop environments with PulseAudio,
    # systems without PulseAudio may require 10.
    # Default: 1
    
    SOUND_POWER_SAVE_ON_AC=0
    SOUND_POWER_SAVE_ON_BAT=0
    # [palto42] Same comment as for WiFi setting  (I have no issue with default enabled)
    
    # Set to 0 to disable, 1 to enable USB autosuspend feature.
    # Default: 1
    
    USB_AUTOSUSPEND=0
    # [palto42] Same comment as for WiFi setting (I have no issue with default enabled)

      palto42 Of the settings you list, my experience of TLP on my laptop suggested that:

      TLP_DEFAULT_MODE=AC
      Gets overridden by the device's reported power mode. I can't think of a situation where the default would be applied on a laptop.

      CPU_SCALING_GOVERNOR_ON_AC=performance
      CPU_SCALING_GOVERNOR_ON_BAT=schedutil
      These were overridden by the built-in "ondemand" governor, which performed better than the Solus TLP default governors when manually-enabled. As they were disabled on my system, there was no detrimental effect from the Solus TLP defaults.

      CPU_BOOST_ON_AC=1
      CPU_BOOST_ON_BAT=0
      This did as promised and prevented the CPU from boosting above its base clock rate, even on a 1.6GHz Celeron. Anecdotally I found this extended battery life slightly, at the cost of a less-responsive system. On a more powerful system the downside may not be noticeable.

      RADEON_DPM_STATE_ON_AC=performance
      RADEON_DPM_STATE_ON_BAT=battery
      I wasn't able to test these, but the Solus defaults appear to favour battery life when on battery power, which seems reasonable.

      WIFI_PWR_ON_AC=off
      WIFI_PWR_ON_BAT=off
      SOUND_POWER_SAVE_ON_AC=0
      SOUND_POWER_SAVE_ON_BAT=0
      USB_AUTOSUSPEND=0
      I didn't try these but expect the reason they are disabled may be compatibility, rather than performance-based. Notably I am unable to test for broad hardware (in)compatibility. I can't imagine sound power saving would have much impact without a dedicated sound card, and WiFi power saving may not be a desirable feature nowadays. However, the performance difference may be worth testing.

      Do you think there could be a noticeable performance (battery life) gain from changing any of these settings? Or might there be other advantages to adopting the standard TLP default config, such as faster updates? If not, then the potential for incompatibility with undefined hardware seems a fair reason to stick with the status quo.

      • [deleted]

      • Edited

      palto42

      My concern is that this is not documented so that the user who installs TLP from Solus repository might be surprised to get other settings than suggested by the TLP project.

      Those users will be surprised often, as Solus has quite a lot of opinionated customization in its packages.

      I didn't try these but expect the reason they are disabled may be compatibility, rather than performance-based.

      They're disabled for a compabitility reasons. Except for the governor setting which should be removed so that TLP defaults to "none".

      Do you think there could be a noticeable performance (battery life) gain from changing any of these settings?

      I personally don't think they will yield enough that it would be justified to surprise users with intermittent wi-fi or crackling audio.

      Thanks for the feedback so far.
      I think nearly no one really tried the default TLP settings on Solus since there was no awareness of them, so we may not get any experience on stability impact or battery life.
      Personally I would just trust the TLP maintainers to select a good compromise between stable on most platforms and power saving, but if the Solus community want to stick to current customization, it's not a big deal for me since I'm now aware of it ;-)

      For battery life I always set charge thresholds to
      START_CHARGE_THRESH_BAT0=40
      STOP_CHARGE_THRESH_BAT0=80
      START_CHARGE_THRESH_BAT1=40
      STOP_CHARGE_THRESH_BAT1=80

      so I can keep plugin the power cord

      There is a UI version
      you can try TLP-UI

      I use acpi -b to find discharge percentage

      I just upgraded my laptop, and had a pleasant surprise, TLP 1.5.0 is in the Shannon repo 😄 !! Thank you.