Power consumption vs. Windows 10

Sirs,

I have a Gigabyte Aero laptop that I have set up to dual boot Windows 10 and OpenSuse 15.2. I have had several versions of OpenSuSe on this platform (15.1 and 42.3). I have also had a number of laptops set up in a similar dual boot fashion for quite a few years before that. (A glutton for punishment, i know.) In all cases the power consumption and battery life have been pretty close between Windows and Linux. I have been very satisfied with the 15.2 installation, and it seems to be correctly configured for this laptop. With 15.2 I have about 2 hours of battery life and it’s estimates of runtime seem to be quite accurate. (And that is a reasonable runtime on a laptop like this.) I should also note that the power consumption is about 30W with occasional 50W spikes. On Windows 10 my batter life is similar until I turn on the “battery saving” features. Then my battery life jumps to 6-8 hours. I have never run the laptop completely out, and it seems that 8hr might be optimistic, but 6hr is certainly doable. I have made sure that my screen brightness and anything else I can adjust is the same between the 2 operating systems. Is there something I have missed? (I have the battery saving feature active in Linux also.)

Thanks,
The Kapt

Hi
Dual graphics, with nvidia? Look at installing suse-prime and switch the dGPU off?

It’s well known that the two biggest sources for energy consumption are the disks (particularly if rotating) and display.
Verify each of these are optimized and configured properly.

Next thing I’d look at is the processor’s stepping configuration which will depend on make, model and technology.
Keep in mind that when a processor fires up to max capability, it’s usually for a reason and unless you have a reason to be especially wary of power consumption, ordinarily you’d want to lean towards max capability, particularly if you’re not on battery power

TSU

  1. Check for “Laptop” pattern in YaST for “tlp” and other packages.
tlp - Save battery power on laptops

TLP implements advanced power management for Linux. TLP is a pure command line tool with automated background tasks. It does not contain a GUI.

  1. Do not use BTRFS, use ext4/XFS.

  2. Maybe you need to wait for additions in a Linux kernel for your hardware.

Adding to what @tsu2 suggested in post #3, Win has a proprietary Intel SATA disk driver that can lower the disk interface power consumption when the disk is not in active use; such a driver is not available in Linux AFAIK (but I might not be up to date on this topic).
Also, LEAP uses an “On Demand” power governor by default and especially with newer processors a “battery save” mode on Win might be able to send a few cores to a deeper sleep state while still providing some responsiveness, even if I too would not use that unless I were away from a power outlet for many hours. TLP might help here somehow, but I would not expect magic results.
All in all, I’m not surprised to see that a Win “battery save” mode can extend battery life on a recent laptop to twice the time seen on a default Leap (or Linux generally) install.

As an aside, “Tuxedo” have announced a 1½ kg “Linux pure” Laptop, with a 15 inch 1920x1080 pixel display and, AMD Ryzen 7 4800H GPU (Vega 7 graphics) and, a claimed battery life of 20 hours …

Thanks for all the helpful replies. It does look like Gigabyte may have some proprietary stuff for windows that is helping. I also believe that windows may have some way to save more power on the NVIDIA card. I do not have any direct proof, but it seems like older installs without NVIDIA support had longer battery life than ones with NVIDIA support even when you are not using the card. Svyatko, “tlp” was already installed and looks very interesting. Also, on #2 you mention BTRFS. Is that because a journaling file system will run the HD more than one that does not keep a journal (NTFS)? (I cannot give up BTRFS on my system drive, I break stuff too often.)

Thanks again.
The Kapt

Would you mind telling some details?

erlangen:~ # inxi -zxmF 
System:    Kernel: 5.8.14-1-default x86_64 bits: 64 compiler: N/A Console: tty 1 Distro: openSUSE Tumbleweed 20201008 
Machine:   Type: Desktop Mobo: Gigabyte model: B450 AORUS ELITE v: x.x serial: N/A UEFI: American Megatrends v: F51 
           date: 12/18/2019 
Memory:    RAM: total: 29.32 GiB used: 2.33 GiB (7.9%) 
           Array-1: capacity: 128 GiB slots: 4 EC: None max module size: 32 GiB note: est. 
           Device-1: DIMM 0 size: No Module Installed 
           Device-2: DIMM 1 size: 16 GiB speed: 2133 MT/s type: DDR4 
           Device-3: DIMM 0 size: No Module Installed 
           Device-4: DIMM 1 size: 16 GiB speed: 2133 MT/s type: DDR4 
CPU:       Topology: Quad Core model: AMD Ryzen 5 3400G with Radeon Vega Graphics bits: 64 type: MT MCP arch: Zen+ rev: 1 
           L2 cache: 2048 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 59090 
           Speed: 1258 MHz min/max: 1400/3700 MHz Core speeds (MHz): 1: 1259 2: 1293 3: 1273 4: 1258 5: 1267 6: 1259 7: 1395 
           8: 1352 
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Picasso driver: amdgpu v: kernel bus ID: 06:00.0 
           Display: server: X.Org 1.20.9 driver: amdgpu resolution: 1920x1080~60Hz 
           OpenGL: renderer: AMD RAVEN (DRM 3.38.0 5.8.14-1-default LLVM 10.0.1) v: 4.6 Mesa 20.1.8 direct render: Yes 
Audio:     Device-1: Advanced Micro Devices [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP Audio driver: snd_hda_intel v: kernel 
           bus ID: 06:00.1 
           Device-2: Advanced Micro Devices [AMD] Family 17h HD Audio vendor: Gigabyte driver: snd_hda_intel v: kernel 
           bus ID: 06:00.6 
           Device-3: Tenx USB AUDIO type: USB driver: hid-generic,snd-usb-audio,usbhid bus ID: 1-5:2 
           Sound Server: ALSA v: k5.8.14-1-default 
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Gigabyte driver: r8169 v: kernel 
           port: f000 bus ID: 03:00.0 
           IF: eno1 state: up speed: 100 Mbps duplex: full mac: <filter> 
Drives:    Local Storage: total: 2.50 TiB used: 307.79 GiB (12.0%) 
           ID-1: /dev/sda vendor: Seagate model: ST2000DM001-1CH164 size: 1.82 TiB 
           ID-2: /dev/sdb vendor: Samsung model: SSD 850 EVO 500GB size: 465.76 GiB 
           ID-3: /dev/sdc vendor: Samsung model: SSD 850 EVO 250GB size: 232.89 GiB 
Partition: ID-1: / size: 40.00 GiB used: 14.77 GiB (36.9%) fs: btrfs dev: /dev/sdc3 
           ID-2: /home size: 427.82 GiB used: 292.99 GiB (68.5%) fs: ext4 dev: /dev/sdb3 
           ID-3: /opt size: 40.00 GiB used: 14.77 GiB (36.9%) fs: btrfs dev: /dev/sdc3 
           ID-4: /var size: 40.00 GiB used: 14.77 GiB (36.9%) fs: btrfs dev: /dev/sdc3 
Swap:      Alert: No Swap data was found. 
Sensors:   System Temperatures: cpu: 38.6 C mobo: 28.0 C gpu: amdgpu temp: 38 C 
           Fan Speeds (RPM): cpu: 0 fan-1: 0 fan-3: 0 
           Voltages: 12v: N/A 5v: N/A 3.3v: 1.69 vbat: 1.66 
Info:      Processes: 269 Uptime: N/A Init: systemd runlevel: 5 Compilers: gcc: 10.2.1 Shell: bash v: 5.0.18 inxi: 3.1.00 
erlangen:~ #

Idle power of the above system at the power cord is 22W.

So long as you leave the memory speed at the default of 2133 MT/s then, 22 W is possible …

  • If you increase the memory speed to what a Ryzen 5 3400G can reliably accept – 2933 MT/s – for such a system, you’ll possibly see an idle power consumption of around 25 W to 30 W …

Sure. You can tinker with all the fancy settings. I prefer Load Optimized Defaults, turn off CSM Support and turn on Power On By Keyboard. The built-in HDD sleeps as it is used for backup only. The big case needs no fans.

Typical values:

Idle:

Vcore: 719.00 mV
Vsoc: 894.00 mV
Tctl: +30.4°C
Tdie: +30.4°C
Icore: 4.00 A
Isoc: 3.75 A

Handbrake default settings:

Vcore: 1.33 V
Vsoc: 1.06 V
Tctl: +75.0°C
Tdie: +75.0°C
Icore: 71.00 A
Isoc: 5.00 A

Apart from the Wraith fan on the CPU and the power supply’s fan …

  • In my case, a large case but, with 2 case fans in addition to the CPU and power supply fans – while writing this – up to 38 W …
erlangen:~ # inxi -xxMCmG
Machine:   Type: Desktop Mobo: Gigabyte model: B450 AORUS ELITE v: x.x serial: N/A UEFI: American Megatrends v: F51 
           date: 12/18/2019 
Memory:    RAM: total: 29.32 GiB used: 2.45 GiB (8.4%) 
           Array-1: capacity: 128 GiB slots: 4 EC: None max module size: 32 GiB note: est. 
           Device-1: DIMM 0 size: No Module Installed 
           Device-2: DIMM 1 size: 16 GiB speed: 2133 MT/s type: DDR4 manufacturer: N/A part-no: CMK32GX4M2B3200C16 
           Device-3: DIMM 0 size: No Module Installed 
           Device-4: DIMM 1 size: 16 GiB speed: 2133 MT/s type: DDR4 manufacturer: N/A part-no: CMK32GX4M2B3200C16 
CPU:       Topology: Quad Core model: AMD Ryzen 5 3400G with Radeon Vega Graphics bits: 64 type: MT MCP arch: Zen+ rev: 1 
           L1 cache: 384 KiB L2 cache: 2048 KiB L3 cache: 4096 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 59090 
           Speed: 1256 MHz min/max: 1400/3700 MHz Core speeds (MHz): 1: 1255 2: 1257 3: 1256 4: 1395 5: 1256 6: 1257 7: 1257 
           8: 1393 
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Picasso driver: amdgpu v: kernel bus ID: 06:00.0 chip ID: 1002:15d8 
           Display: server: X.Org 1.20.9 compositor: kwin_x11 driver: amdgpu resolution: 1920x1080~60Hz s-dpi: 96 
           OpenGL: renderer: AMD RAVEN (DRM 3.38.0 5.8.14-1-default LLVM 10.0.1) v: 4.6 Mesa 20.1.8 direct render: Yes 
erlangen:~ # sensors
...
k10temp-pci-00c3
Adapter: PCI adapter
Vcore:       713.00 mV 
Vsoc:        894.00 mV 
Tctl:         +30.6°C  
Tdie:         +30.6°C  
Icore:         4.00 A  
Isoc:          3.25 A  
...

Typing makes no difference: load average: 0.11, 0.29, 0.41. Switching to ATX12VO would bring idle power at default settings down from 22W to some 10W: Netzteilstandard ATX12VO angetestet: Hohes Sparpotenzial bei Desktop-PCs | heise online

Yeah – I saw that Heise article this morning also …

  • But, it ain’t quite here yet – AFAICS, there’s only one Mother Board and one Power Supply (possibly) available for Intel Core 19 CPUs …
  • It seems to be driven by new Californian energy consumption standards due to be enforced next year – 2021 …

Hi
Sounds like some compute tweaks are needed in a sensors config file?

  • How can this be done?
  • psensor shows temperatures but no currents. Can they be configured?

Hi
It’s pretty simple, see this thread: https://forums.opensuse.org/showthread.php/545440-Can-I-change-sensor-names-to-be-more-meaningful?

I suspect post #21 is what is needed since that’s from my AMD setup, for power I used;


compute power1 @/1000,@

This because it was showing a 1000 out with it’s calculation (2770W)…

Actually, both BTRFS and NTFS are journaling file systems.
The journaling feature is related to their ability to detect and auto repair small data errors.
It’s supposed to cause a slight disk latency but AFAIK should not significantly affect power consumption but this is likely a YMMV thing.
In any case, data integrity is supposed to almost always be a highest priority when it comes to storage and worth whatever penalties are incurred. Only in some cases like dedicated logs where data loss is not critical are where you’ll find people taking chances like RAID 0, that kind of stuff.

TSU

I suspect that karlmistelberger has, as indeed I also have, an Energy Monitor inserted into the power cable – they look like this: <SUSE Paste;

  • Regardless of what the Motherboard’s sensors are reporting, the Energy Monitor is reporting the watts being consumed by the case’s Power Supply …
  • The Motherboard’s sensors can never take the efficiency of the case’s Power Supply into account – “watts in” and “watts out” …