system76 / firmware-open

System76 Open Firmware
Other
962 stars 84 forks source link

gaze17-3050 is slower on battery power #398

Closed zen1tho closed 1 year ago

zen1tho commented 1 year ago

Steps to reproduce

  1. Create a clean Arch Install with nouveau blacklisted (via bootloader and /etc/modprobe.d/blacklist.conf)
  2. Install system76 drivers and modules paru -S system76-acpi-dkms-git system76-dkms-git system76-driver system76-firmware system76-firmware-daemon system76-io-dkms-git system76-power-git (I used git versions to see if it would mitigate this issue)
  3. Install old nvidia drivers (again, tried with newest but downgraded using the downgrade cli to mitigate the issue) sudo downgrade 'nvidia-dkms=525.85.05' 'nvidia-utils=525.85.05' 'nvidia-settings=525.85.05' 'lib32-nvidia-utils=525.85.05'
  4. Change system76 graphics profile to nvidia via system76-power graphics nvidia
  5. Change system76 power profile to performance via system76-power profile performance and reboot
  6. Install xorg, xorg-xinit i3wm
  7. Add exec xrandr --output eDP-1-1 --auto --primary --dpi 144 to top of i3 config

Expected behavior

Laptop to perform the same while charging and on battery.

Actual behavior

Laptop almost always outperforms battery while charging. In some cases, they are similar in performance but most of the time, the laptop performs much, much better while charging.

Additional info

I researched this issue, and some people said that you can change the setting through BIOS, but I do not see any option like that in the System76 BIOS. I get similar results while running Pop!_OS, but I never realized it was such an issue until I switched to Arch and directly saw the performance hit.

zen1tho commented 1 year ago

I feel that it is important to note that the "benchmark" I'm using is the speed of glxgears and slight lags in between changing workspaces in i3 (with picom-tryone-git)

EDIT: Here's my glxgears results (picom killed): Battery: ~5402fps Charging: ~11408fps

leviport commented 1 year ago

This isn't a bug, it's intentional behavior to account for the chemical limits of modern batteries. Pretty much every laptop (but especially one with an H-class CPU and an Nvidia GPU like the Gazelle) will need to throttle on battery. LiPo batteries have safety limits to keep them from discharging too quickly. They even have a safety "breaker" in them that completely cuts power if the battery is overdrawn, and if that breaker gets tripped, the machine usually can't be turned back on until it gets plugged into the charger. In order to prevent sudden and complete shutdowns, the power limits of the CPU and GPU must be decreased while disconnected from AC power. There is quite a bit of engineering and testing effort that goes into pushing those limits as high as they can be without risking overdraw though.