Performance issue when power mode = Battery

I’m having issue with performance on my HP pavilion Cs 3006tx. When my laptop is plugged to AC it works like a charm but when it is not it lags very much. I have tried cpupower command line tool and cpupower-gui as well. Even setting governor to peroformance doesn’t change anything. I have also tried cpufreqctl turbo mode same results. I have also tried autofreq tool in AUR. Could it be that my cpu runs on max when but my display controller is running on power save. I’m very new to linux so this is just my guess.

Hardware details:
CPU : Intel I5
GPU : Hybrid Intel iris and nvidia mx250
Ram : 16 GB

Hi @jcube19, and welcome!

In order for us, or anyone for that matter, to be able to provide assistance, more information is necessary. To that end, please see:

Please also note and heed: Forum Rules - Manjaro

Hope you manage!


:bangbang: Tip: :bangbang:

To provide terminal output, copy the text you wish to share, and paste it here, surrounded by three (3) backticks, a.k.a grave accents. Like this:

```
pasted text
```

Or three (3) tilde signs, like this:

~~~
pasted text
~~~

This will just cause it to be rendered like this:

Portaest sed
elementum
cursus nisl nisi
hendrerit ac quis
sit
adipiscing
tortor sit leo commodo.

Instead of like this:

Portaest sed elementum cursus nisl nisi hendrerit ac quis sit adipiscing tortor sit leo commodo.

Alternatively, paste the text you wish to format as terminal output, select all pasted text, and click the </> button on the taskbar. This will indent the whole pasted section with one TAB, causing it to render the same way as described above.

Thereby improving legibility and making it much easier for those trying to be of assistance.


:bangbang::bangbang: Additionally

If your language isn’t English, please prepend any and all terminal commands with LC_ALL=C. For example:

LC_ALL=C bluetoothctl

This will just cause the terminal output to be in English, making it easier to understand and debug.

Please edit your post accordingly.

Hey @Mirdarthos Thank you. Here’s my system info I have taken this when I’ve plugged in AC Shall I inxi on battery mode?

System:
  Kernel: 6.8.4-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.8-x86_64
    root=UUID=5e18bd0f-e107-4446-b2e7-c57eefdc7fca rw quiet splash apparmor=1
    security=apparmor resume=UUID=3137a310-566f-4566-b9e0-25e37c5e4d87
    udev.log_priority=3
  Desktop: GNOME v: 45.4 tk: GTK v: 3.24.41 wm: gnome-shell
    tools: gsd-screensaver-proxy dm: GDM v: 45.0.1 Distro: Manjaro
    base: Arch Linux
Machine:
  Type: Laptop System: HP product: HP Pavilion Laptop 15-cs3xxx
    v: Type1ProductConfigId serial: <superuser required> Chassis: type: 10
    serial: <superuser required>
  Mobo: HP model: 86E2 v: 95.36 serial: <superuser required>
    part-nu: 8LX85PA#ACJ uuid: <superuser required> UEFI: Insyde v: F.18
    date: 11/01/2022
Battery:
  ID-1: BAT0 charge: 31.2 Wh (87.6%) condition: 35.6/35.6 Wh (100.0%)
    volts: 12.6 min: 11.6 model: HP Primary type: Li-ion serial: N/A
    status: charging
CPU:
  Info: model: Intel Core i5-1035G1 bits: 64 type: MT MCP arch: Ice Lake
    gen: core 10 level: v4 note: check built: 2019-21 process: Intel 10nm
    family: 6 model-id: 0x7E (126) stepping: 5 microcode: 0xC2
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
    L1: 320 KiB desc: d-4x48 KiB; i-4x32 KiB L2: 2 MiB desc: 4x512 KiB L3: 6 MiB
    desc: 1x6 MiB
  Speed (MHz): avg: 1124 high: 3600 min/max: 400/3600 scaling:
    driver: intel_pstate governor: performance cores: 1: 2993 2: 400 3: 3600
    4: 400 5: 400 6: 400 7: 400 8: 400 bogomips: 19048
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: gather_data_sampling mitigation: Microcode
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: Enhanced IBRS
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Enhanced / Automatic IBRS, IBPB: conditional,
    RSB filling, PBRSB-eIBRS: SW sequence
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel Iris Plus Graphics G1 vendor: Hewlett-Packard driver: i915
    v: kernel arch: Gen-11 process: Intel 10nm built: 2019-21 ports:
    active: eDP-1 empty: HDMI-A-1 bus-ID: 00:02.0 chip-ID: 8086:8a56
    class-ID: 0300
  Device-2: NVIDIA GP108M [GeForce MX250] vendor: Hewlett-Packard
    driver: nvidia v: 550.67 alternate: nouveau,nvidia_drm non-free: 545.xx+
    status: current (as of 2024-02; EOL~2026-12-xx) arch: Pascal code: GP10x
    process: TSMC 16nm built: 2016-2021 pcie: gen: 1 speed: 2.5 GT/s lanes: 4
    link-max: gen: 3 speed: 8 GT/s bus-ID: 06:00.0 chip-ID: 10de:1d13
    class-ID: 0302
  Device-3: Lite-On HP Wide Vision HD Camera driver: uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-3:3 chip-ID: 04ca:707f
    class-ID: 0e02 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.12 with: Xwayland v: 23.2.5
    compositor: gnome-shell driver: X: loaded: modesetting dri: iris gpu: i915
    display-ID: 0
  Monitor-1: eDP-1 model: AU Optronics 0x61ed built: 2018 res: 1920x1080
    dpi: 142 gamma: 1.2 size: 344x194mm (13.54x7.64") diag: 395mm (15.5")
    ratio: 16:9 modes: 1920x1080
  API: EGL v: 1.5 hw: drv: intel iris drv: nvidia platforms: device: 0
    drv: nvidia device: 1 drv: iris device: 2 drv: swrast surfaceless:
    drv: nvidia wayland: drv: iris x11: drv: iris inactive: gbm
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 24.0.2-manjaro1.1
    glx-v: 1.4 direct-render: yes renderer: Mesa Intel UHD Graphics (ICL GT1)
    device-ID: 8086:8a56 memory: 15.05 GiB unified: yes display-ID: :0.0
  API: Vulkan v: 1.3.279 layers: 6 device: 0 type: discrete-gpu
    name: NVIDIA GeForce MX250 driver: nvidia v: 550.67 device-ID: 10de:1d13
    surfaces: xcb,xlib,wayland
Audio:
  Device-1: Intel Ice Lake-LP Smart Sound Audio vendor: Hewlett-Packard
    driver: snd_hda_intel v: kernel alternate: snd_sof_pci_intel_icl
    bus-ID: 00:1f.3 chip-ID: 8086:34c8 class-ID: 0403
  API: ALSA v: k6.8.4-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.0.3 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Ice Lake-LP PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:34f0 class-ID: 0280
  IF: wlo1 state: up mac: <filter>
  Device-2: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: Hewlett-Packard RTL8111/8168/8411 driver: r8169 v: kernel pcie:
    gen: 1 speed: 2.5 GT/s lanes: 1 port: 4000 bus-ID: 10:00.0
    chip-ID: 10ec:8168 class-ID: 0200
  IF: eno1 state: down mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Bluetooth:
  Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) driver: btusb v: 0.8
    type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-10:4
    chip-ID: 8087:0aaa class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
RAID:
  Hardware-1: Intel 82801 Mobile SATA Controller [RAID mode] driver: ahci
    v: 3.0 port: 8060 bus-ID: 00:17.0 chip-ID: 8086:282a rev: N/A class-ID: 0104
Drives:
  Local Storage: total: 1.14 TiB used: 89.11 GiB (7.6%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: MZVLQ256HAJD-000H1
    size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: HPS2NFXV temp: 21.9 C
    scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Toshiba model: MQ04ABF100
    size: 931.51 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 5400 serial: <filter> fw-rev: 4C scheme: MBR
Partition:
  ID-1: / raw-size: 229.37 GiB size: 224.71 GiB (97.97%)
    used: 65.25 GiB (29.0%) fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 296 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: partition size: 8.8 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
  System Temperatures: cpu: 49.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 16 GiB note: est. available: 15.41 GiB used: 6.66 GiB (43.2%)
  Processes: 312 Power: uptime: 1h 34m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 1 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 6.13 GiB services: gsd-power,
    power-profiles-daemon, upowerd Init: systemd v: 255 default: graphical
    tool: systemctl
  Packages: 1548 pm: pacman pkgs: 1531 libs: 475 tools: gnome-software,pamac
    pm: flatpak pkgs: 17 Compilers: clang: 16.0.6 gcc: 13.2.1 Shell: Zsh v: 5.9
    running-in: gnome-terminal inxi: 3.3.33

Please also provide the output of:

mhwd --list
mhwd --listinstalled

And,

glxinfo | grep "OpenGL renderer"

as well as:

prime-run glxinfo | grep "OpenGL renderer"

both on battery as well as AC power.

Various factors influence how power is controlled - eg. if acpid is enabled and running.

When you are on battery the performance will - unless otherwise configured or set at runtime - be lower than running on mains.

Please see → Power management - ArchWiki
And → CPU frequency scaling - ArchWiki

For Gnome there is gnome-power-manager - not using Gnome - where I assume you have the option to tune some parameters.

Another option is to use tlp and the corresponding tlpui which is a more generic tool.

Be advised that combining applictions most likely will lead to confusion - which setting does what under a certain condition.

mhwd --list :

> 0000:06:00.0 (0302:10de:1d13) Display controller nVidia Corporation:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-intel-nvidia-prime            2023.03.23               false            PCI
video-hybrid-intel-nvidia-470xx-prime            2023.03.23               false            PCI
          video-nvidia            2023.03.23               false            PCI
    video-nvidia-470xx            2023.03.23               false            PCI
           video-linux            2018.05.04                true            PCI


> 0000:10:00.0 (0200:10ec:8168) Network controller Realtek Semiconductor Co., Ltd.:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
         network-r8168            2023.09.12                true            PCI


> 0000:00:02.0 (0300:8086:8a56) Display controller Intel Corporation:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-intel-nvidia-prime            2023.03.23               false            PCI
video-hybrid-intel-nvidia-470xx-prime            2023.03.23               false            PCI
           video-linux            2018.05.04                true            PCI
     video-modesetting            2020.01.13                true            PCI
            video-vesa            2017.03.12                true            PCI

mhwd --list-installed

Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-intel-nvidia-prime            2023.03.23               false            PCI
     video-modesetting            2020.01.13                true            PCI


Warning: No installed USB configs!

glxinfo | grep “OpenGL renderer”
OpenGL renderer string: Mesa Intel(R) UHD Graphics (ICL GT1)

prime-run glxinfo | grep “OpenGL renderer” : on battery
OpenGL renderer string: NVIDIA GeForce MX250/PCIe/SSE2

prime-run glxinfo | grep “OpenGL renderer” : on AC
OpenGL renderer string: NVIDIA GeForce MX250/PCIe/SSE2

Everything looks good to me.

When you are running on battery power a loss of performance is to be expected, as certain functionalities are disabled and certain limits are put in place when running of battery vs. AC. This is to minimize battery usage and thus minimize power usage, causing a longer operating time.

Best would be to optimize your system for your usage, which is something only you can do. The links provided by @linux-aarhus :

https://wiki.archlinux.org/title/Power_management

https://wiki.archlinux.org/title/CPU_frequency_scaling

…are your best bet.

Edit:

It is also a possibility, I use a desktop, so I’m not sure, but there exists the possibility that the Nvidia dGPU won’t be used on the battery. At least not by default. Or something.

That’s where the prime-run prefix to the command I mentioned earlier comes into play. It forces the command that follows to use the dGPU and not the iGPU.

So, while on battery, you’d have to run a piece of software with:

prime-run <command>

Where <command> is the software you wish the dGPU should work on/with.

…to force it to use the dGPU.

But note: doing this while using the battery will reduce operating time quite significantly.

I tried tlp and tlp-ui as well it changed nothing tho. Lemme take a look at the links you have provided.

Just to enhance this commonly ignored factor when performance fails to meet the expectations of a laptop user:

The comments from @Mirdarthos also extend to cache performance (file transfer) and network throughput speed. Generally, there is little to be done, apart from tweaking the system as much as possible, as you are limited by laptop capabilities in both powered and battery modes.

However, choosing a lighter distribution and/or display environment can often compensate to some degree; GNOME and KDE typically have a heavy footprint in comparison to XFCE, for example. Even XFCE isn’t as light on resources as it once was.

One of the community editions of Manjaro might be a worthwhile consideration. Naturally, it depends greatly on what you need from an OS.

That is all. Cheers.

@Mirdarthos @linux-aarhus To see if there are any errors while booting i rebooted and pressed esc to see if there are any failed cases, and i saw there’s only one failed output which says
[Failed] Failed to load cpupower configurations
Could this be the issue? If yes how can i fix it?

Then you have to figure out why.

Do you have any manual which can help me identifying the logs or something

In addition to the previously provided links → cpupower(1) — Arch manual pages

All cpupower related manuals → Arch manual pages

Same information is available locally using man or info

In addition the arch wiki is available for local browsing

pamac build archwiki-offline

Alright Thank you!!

@jcube19 Thanks for not even acknowledging my post. Good luck.

I’m thinking logs. So, to get the logs:

journalctl --priority=warning..err --no-pager --boot=-1 --unit=cpupower.service

Where:

  • The --priority=warning..err argument limits the output to warnings and errors only;
  • and the --no-pager formats the output nicely for use here, on the forum;
  • the --boot=-1 argument limits the output to log messages from the previous boot. This can be adjusted to -2 for the boot before that, -3 to the boot before that, and so on and so forth; and
  • --unit=cpupower.service limits the output to anything related to the cpupower service.

Also try and provide the output of the following:

systemctl status cpupower

Hey Sorry for not replying but I don’t think OS is an issue here.

Okay I fixed this one but the performance issue still persists.

My previous reply regarding that still applies.

I tried running some softwares with prime-run command still same issue