Best Ways to benchmark battery life (Windows & Linux)

I eagerly await delivery of the new 12th gen in July but when I do receive my laptop, I want to try and provide a comprehensive battery life benchmark. For instance, I’ve heard that the E-cores present in Alder Lake are comparable to Skylake cores at reduced power draw. Given that there are 8 E-cores, I would like to see if the machine is still usable with most of the P-cores disabled for light office work and general productivity. @nrp is this functionality present in BIOS or exposed in EC?

Of course I will be referencing the excellent battery life tuning thread for Linux but I also want to hear what the community views as appropriate battery life benchmarking tools and or configurations. Which distro (because I won’t have time to test them all) seems most appropriate? Officially supported distro’s only or perhaps more popular options like Pop!OS?

I do plan on looping Cinebench/Prime95 along with Furmark to see how a worst case scenario would turn out. Let’s hear your thoughts everyone!

1 Like

Under 2 hours, likely around 1h40m…if that.

55Wh battery, 30w sustained + display + memory and storage power

1 Like

For measuring power draw it’s hard to beat PowerTOP. As for measuring battery usage, there don’t seem to be any GUI programs, but I have heard a few CLI programs mentioned here.

1 Like

HWInfo allow you to read the “smart battery info report” which contan things such as charging/discharging, current, voltage, calculated capacity and such. However it is relatively poorly optimized and take up a good chunk of system resource (for a monitoring app)

1 Like

I plan on doing one OS at a time, starting with Windows 11 as it should be the simplest to configure and likely the most used OS. I’ll start with just adjusting the power settings in control panel and starting with PCMark. Performance at each battery configuration will be tested using Cinebench and 3DMark. It doesn’t look like XTU supports the 1260P so if anyone can suggest a Windows tool to tweak clocks and/or TDP manually, I would appreciate it. I expect we still won’t have undervolting control on 12th gen.

CoreRemp from ALCPU?

1 Like

I don’t do Windows, but on Linux for battery, I have two suggestions:

Summary:
System:   2.89 Watts on average with standard deviation 0.06  

C-State    Resident      Count Latency 
C10         99.747%      72805     230
C8           0.018%       1100     200
C6           0.018%       1237     170
C1E          0.043%       6933       2
POLL         0.000%         34       0
C0           0.175%

Histogram (of 30 power measurements)

Range (Watts) Count
2.779 - 2.801     3 #################
2.802 - 2.825     2 ###########
2.826 - 2.849     2 ###########
2.850 - 2.873     7 ########################################
2.874 - 2.897     2 ###########
2.898 - 2.921     5 ############################
2.922 - 2.944     3 #################
2.945 - 2.968     2 ###########
2.969 - 2.992     2 ###########
2.993 - 3.016     2 ###########

Histogram (of 30 CPU utilization measurements)

Range (%CPU)  Count
0.138 - 0.167    22 ########################################
0.168 - 0.197     1 #
0.198 - 0.227     1 #
0.228 - 0.257     1 #
0.258 - 0.287     2 ###
0.288 - 0.317     1 #
0.318 - 0.347     0 
0.348 - 0.377     0 
0.378 - 0.407     1 #
0.408 - 0.437     1 #

Histogram (of 30 CPU average frequencies)

Range (GHz)   Count
2.001 - 2.050     1 #
2.051 - 2.099     0 
2.100 - 2.149     0 
2.150 - 2.199     0 
2.200 - 2.249     0 
2.250 - 2.299     2 ###
2.300 - 2.349     1 #
2.350 - 2.399     1 #
2.400 - 2.449     3 #####
2.450 - 2.499    22 ########################################

I couldn’t find anything good for tracking good for tracking suspend power, so currently writing something for that…

UPDATE: first version of suspend tracking tool posted: Linux Utility to Help Track Framework Battery Usage

3 Likes

The python script at [TRACKING] Linux battery life tuning - #214 by Nils works OK for me to record battery charge depletion across suspends.

1 Like

Just found this thread when looking for a way to get the time since the last time AC was connected. I didn’t find a utility for that, but I found gnome-battery-bench (at least on Fedora 36) to do specific tests. Maybe that helps someone

I mentioned powerstat earlier which by default is setup for idle power testing, but since I’ve recently been using it for general testing I figured I’d post a note in case anyone else wants to try stuff out. I’m using it with the following flags:

powerstat -d 0 -c -H 1 480

-d means 0 seconds of delay (fine if you’re already running a test for a while, otherwise you may want to restart when power levels off (as readings average/ramp up), life is short.

-c and -H are to get C-state stats at the end and to get a histogram.

The first number 1 is the sampling frequency (once per second), and 480 is # of samples - minimums are enforced by powerstat but you can cancel out if you want. One thing I’ll note is that sometimes, powerstat and powertop's C state percentages end up not matching. That probably requires more testing (maybe also with turbostat) - the latter or Intel written tools so might be more accurate.

Out of curiosity I did some recent testing with a basic bash one-liner (basically while [ 1 ]; do echo 'foo'; sleep 1; done) to show how quickly power usage ramps up based on small changes in C10 residency.

tldr results on that btw (psr=1, foot in sway):

  • idle: C10 @ 99.75%; 3.5W power consumption
  • sleep 1: C10 @ 99.5%; 4.1W power consumption
  • sleep 0.1: C10 @ 98.7%; 5.5W power consumption
  • sleep 0.01: C10 @ 93.5%; 9W power consumption

(This seems to corroborate my real world results where if I am running Spotify playing in the background (htop reporting about 5-6% CPU usage), my power consumption will jump up to about 9W even though it’s almost idle.)

2 Likes