Powersave Benchmarks

Whatsup everyone. When I run on battery, I usually disable Multi-Core Processing in the bios and just run with one hyper-threaded core with the Performance governor. I've been curious how the performance compares with, say, if I run all cores hyper-threaded but set to Powersave. So I ran some benchmarks and thought maybe some of you would find it interesting as well. The result may say that the performance is about equal, or slightly better with all cores set to powersave, but I still think I'd rather have 1 core working fast than 4 cores working slow.

First my inxi because it's relevant.

 ╭─[email protected] in ~ took 27s
 ╰─λ garuda-inxi
System:
  Kernel: 6.1.1-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=60eceb2e-a436-41ed-8626-e6a62b3bf76d rw [email protected]
    quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    loglevel=3 ibt=off
  Desktop: KDE Plasma v: 5.26.4 tk: Qt v: 5.15.7 info: latte-dock
    wm: kwin_x11 vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 427639U v: ThinkPad W520
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: LENOVO model: 427639U serial: <superuser required> UEFI: LENOVO
    v: 8BET45WW (1.25 ) date: 05/18/2011
Battery:
  ID-1: BAT0 charge: 72.0 Wh (100.0%) condition: 72.0/93.6 Wh (76.9%)
    volts: 12.9 min: 11.1 model: LGC 42T4912 type: Li-ion serial: <filter>
    status: full
CPU:
  Info: model: Intel Core i7-2820QM bits: 64 type: MT MCP arch: Sandy Bridge
    gen: core 2 level: v2 built: 2010-12 process: Intel 32nm family: 6
    model-id: 0x2A (42) stepping: 7 microcode: 0x2F
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
    L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB
    L3: 8 MiB desc: 1x8 MiB
  Speed (MHz): avg: 2648 high: 3400 min/max: 800/3400 scaling:
    driver: intel_cpufreq governor: performance cores: 1: 797 2: 2501 3: 3400
    4: 3400 5: 3400 6: 3400 7: 3400 8: 886 bogomips: 36680
  Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
    vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data status: Unknown: No mitigations
  Type: retbleed 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: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: conditional, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Lenovo driver: i915 v: kernel arch: Gen-6 process: Intel 32nm
    built: 2011 ports: active: LVDS-1 empty: VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0126 class-ID: 0300
  Device-2: NVIDIA GF108GLM [Quadro 1000M] vendor: Lenovo driver: nvidia
    v: 390.157 alternate: nouveau,nvidia_drm non-free: series: 390.xx+
    status: legacy-active (EOL~late 2022) arch: Fermi code: GF1xx
    process: 40/28nm built: 2010-16 pcie: gen: 2 speed: 5 GT/s lanes: 16
    ports: active: none empty: DP-1, DP-2, DP-3, LVDS-2, VGA-2 bus-ID: 01:00.0
    chip-ID: 10de:0dfa class-ID: 0300
  Device-3: Chicony Lenovo Integrated Camera (0.3MP) type: USB
    driver: uvcvideo bus-ID: 1-1.6:6 chip-ID: 04f2:b217 class-ID: 0e02
  Display: x11 server: X.Org v: 21.1.6 with: Xwayland v: 22.1.7
    compositor: kwin_x11 driver: X: loaded: modesetting,nvidia dri: crocus
    gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
    s-diag: 582mm (22.93")
  Monitor-1: LVDS-1 mapped: LVDS-1-1 model: Lenovo 0x40b2 built: 2009
    res: 1920x1080 hz: 60 dpi: 142 gamma: 1.2 size: 344x193mm (13.54x7.6")
    diag: 394mm (15.5") ratio: 16:9 modes: 1920x1080
  API: OpenGL v: 4.6.0 NVIDIA 390.157 renderer: Quadro 1000M/PCIe/SSE2
    direct render: Yes
Audio:
  Device-1: Intel 6 Series/C200 Series Family High Definition Audio
    vendor: Lenovo ThinkPad T520 driver: snd_hda_intel v: kernel bus-ID: 00:1b.0
    chip-ID: 8086:1c20 class-ID: 0403
  Device-2: NVIDIA GF108 High Definition Audio vendor: Lenovo
    driver: snd_hda_intel v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 16
    bus-ID: 01:00.1 chip-ID: 10de:0bea class-ID: 0403
  Sound API: ALSA v: k6.1.1-zen1-1-zen running: yes
  Sound Server-1: PulseAudio v: 16.1 running: no
  Sound Server-2: PipeWire v: 0.3.63 running: yes
Network:
  Device-1: Intel 82579LM Gigabit Network vendor: Lenovo ThinkPad T520
    driver: e1000e v: kernel port: 6080 bus-ID: 00:19.0 chip-ID: 8086:1502
    class-ID: 0200
  IF: enp0s25 state: down mac: <filter>
  Device-2: Intel Centrino Advanced-N 6205 [Taylor Peak] driver: iwlwifi
    v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 03:00.0
    chip-ID: 8086:0085 class-ID: 0280
  IF: wlp3s0 state: down mac: <filter>
  Device-3: Ralink MT7601U Wireless Adapter type: USB driver: mt7601u
    bus-ID: 1-1.2:3 chip-ID: 148f:7601 class-ID: 0000 serial: <filter>
  IF: wlp0s26u1u2 state: up mac: <filter>
Bluetooth:
  Device-1: Broadcom BCM2045B (BDC-2.1) type: USB driver: btusb v: 0.8
    bus-ID: 1-1.4:5 chip-ID: 0a5c:217f class-ID: fe01 serial: <filter>
  Report: bt-adapter ID: hci0 rfk-id: 2 state: up address: <filter>
Drives:
  Local Storage: total: 704.24 GiB used: 141.98 GiB (20.2%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: Western Digital
    model: WD5000LPCX-75VHAT1 size: 465.76 GiB block-size: physical: 4096 B
    logical: 512 B speed: 6.0 Gb/s type: HDD rpm: 5400 serial: <filter>
    rev: 1A05 scheme: GPT
  ID-2: /dev/sdb maj-min: 8:16 vendor: SK Hynix model: SC210 mSATA 256GB
    size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
    type: SSD serial: <filter> rev: 1L00 scheme: GPT
Partition:
  ID-1: / raw-size: 32 GiB size: 32 GiB (100.00%) used: 9.54 GiB (29.8%)
    fs: btrfs dev: /dev/sdb2 maj-min: 8:18
  ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%)
    used: 608 KiB (0.1%) fs: vfat dev: /dev/sdb1 maj-min: 8:17
  ID-3: /home raw-size: 205.97 GiB size: 205.97 GiB (100.00%)
    used: 132.44 GiB (64.3%) fs: btrfs dev: /dev/sdb3 maj-min: 8:19
  ID-4: /var/log raw-size: 32 GiB size: 32 GiB (100.00%)
    used: 9.54 GiB (29.8%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
  ID-5: /var/tmp raw-size: 32 GiB size: 32 GiB (100.00%)
    used: 9.54 GiB (29.8%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
Swap:
  Kernel: swappiness: 2 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 15.51 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 62.0 C mobo: N/A gpu: nvidia temp: 58 C
  Fan Speeds (RPM): cpu: 3366
Info:
  Processes: 271 Uptime: 29m wakeups: 2 Memory: 15.51 GiB
  used: 2.93 GiB (18.9%) Init: systemd v: 252 default: graphical
  tool: systemctl Compilers: gcc: 12.2.0 clang: 14.0.6 Packages: pm: pacman
  pkgs: 1303 libs: 324 tools: octopi,pamac,paru Shell: fish v: 3.5.1
  running-in: konsole inxi: 3.3.24
Garuda (2.6.12-1):
  System install date:     2022-12-25
  Last full system update: 2023-01-02
  Is partially upgraded:   No
  Relevant software:       NetworkManager
  Windows dual boot:       No/Undetected
  Snapshots:               Snapper
  Failed units:

And here are the results.

GEEKBENCH 5 --- 2nd GEN CORE i7-2820QM 2.4 GHz - 3.4GHz Turbo

SINGLE CORE / PERFORMANCE
Single Core = 737
Multi Core  = 728

SINGLE CORE / POWERSAVE
Single Core = 166
Multi Core  = 167

SINGLE CORE / HYPER-THREADED / PERFORMANCE
Single Core = 658
Multi Core   = 817

SINGLE CORE / HYPER-THREADED / POWERSAVE
Single Core = 158
Multi Core  = 200

QUAD CORE / PERFORMANCE
Single Core = 741
Multi Core  = 2459

QUAD CORE / POWERSAVE
Single Core = 187
Multi Core  = 678

QUAD CORE / HYPER-THREADED / PERFORMANCE
Single Core = 742
Multi Core  = 2790

QUAD CORE / HYPER-THREADED / POWERSAVE
Single Core = 165
Multi Core   = 823`
1 Like

Why? To me it makes as much sense as breaking 3 legs of a horse and then expecting the remaining 1 to do the work of all 4 just walking.

Or running it like an 8086 CPU.

1 Like

Because having many cores means your processor can do many things at once. Having a high clock speed means doing something faster. I don't run many things that can use more than 1 thread when I'm on battery anyway, and having the the extra cores running is just wasted battery, especially since they are crippled and running at 800MHz because of a governor. With just 1 processor running at up to 3.4GHz, and hyper-threaded to work to work like a dual core, I can have full performance as long as I don't do something that slams all threads at once, and even if I do, that one core will give it's all.

I recently helped a guy in here with a 6 core, hyper-threaded,very fast cpu and some nvidia gpu who was complaining that his game was lagging badly in Garuda but not in Ubuntu. I noticed in his inxi that he had his badass cpu throttled by the powersave governor and topping out at only 1GHz. It doesn't matter how many cores you have when most things only use 1 thread. What matters is the speed.

Here's the post I'm talking about...

If that is your entire goal, I can kind of understand it, Dave. I've known you for a few years and sometimes you do do edge-cases well. But, other than battery life, why would you want to cripple a 2nd Gen Intel CPU?

1 Like

I wouldn't. Okay, look. I had a Thinkpad W520 that I loved but it would die on battery. I searched it and found that many of them die on battery because the CPU draws more power than the battery can supply. That's when I learned to shut down 3 cores in the bios and suddenly I could use it on battery, but my battery health was very low and it would still die in less than an hour. Well, I broke the 2 bottom bays (the hard drive and ram bays) by tightening the screws too tight and while looking for new covers on eBay I saw a W520 with a fried motherboard but in good cosmetic shape on auction for $20. I never bid on auctions before, but tried it and won. I get the laptop here in hopes that the guy just didn't know how to reset it (pull the battery and hold the power button for like 20 seconds), and before I even turn it on I do a reset. I never saw it mess up. It immediately booted fine. Apparently it messed up years ago and then sat in someone's closet for years. The battery is at 79% health and this one doesn't die on either battery, even with all cores running. But, because of the trouble with my other W520, I had been experimenting with powersaving techniques, and running one core at full speed is not very different from from running 4 cores at full speed. Running 4 cores at 800MHz, however, is very different than running 4 cores at full speed. So that's how I got my interest in powersaving...it was a necessity. As to other reasons I might want to cripple my badass CPU...well I did cripple it to make a video once....

3 Likes

But why?

To make you wonder.

1 Like

That's a really good observation indeed.

But certainly, it can't be generalized.

Also, many times, benchmarks can be misleading indeed. For example, here

The geekbench may measure the performance of just 1 core, very true. But the other 3 cores are still performing their tasks in background, and hence draw their share of power. Whereas. here

The other 3 cores do not consume power at all. So, all the power is given to that single core only.

But bear in mind, in this case, all the tasks are performed by this single core as well.
That can, in real life scenarios, indeed reduce the performance, because as you might know, CPU uses kind of Priority based scheduling. Also, games and normal user applications are executed on least priority ( 20 in unix iirc )

So, suppose, while you are playing the game, there is some interrupt. It will halt your game momentarily and CPU will start executing the other task immediately.

The fps may suddenly drop sharply due to this. It may even halt the game momentarily. if, you say, open other application in background.
This is much less likely to happen in multicore cpu though.

Also, this can happen very frequently, but modern processor are very fast, and can easily withstand such things. Because even 1 GHz is executing instruction in nanosecond. So, fps drop may or may not be even noticeable for small OS related tasks.

All in all, I would say if it saves considerable amount of power, like > 20% power, without much fps drops, you should go for it, otherwise, I guess it is not worthy enough.

6 Likes

That's what I thought with these results since it seems to perform so much better with just one core set to "Performance" or even "Schedutil" than on "8 Cores" (virtual) set to "Powersave," and that's kind of why I posted. But, after more consideration, I think if you consider the most significant results for my use case, the benchmark actually does reveal my findings. Those results are these.

SINGLE CORE / PERFORMANCE
Single Core = 737

QUAD CORE / HYPER-THREADED / POWERSAVE
Single Core = 165

Since most programs use only one thread, it's the single core score that is most significant for a computer that is not doing heavy, CPU intensive multitasking (and who does heavy multitasking while trying to save battery), or running a program like aircrack-ng that slams all available cores at once. This test will change the way I look at benchmark results forever because before I always considered the multicore score as most relevant since we usually run with multi cores. Now I see clearly that that's not necessarily the case.

Nice to see you back on the forum Dave, and a healthy & happy new year to you. :smile:

2 Likes

Thank you very much for noticing @tbg . I've been 4 months in jail and it sure is nice to be back. Happy New Year to you as well.

1 Like

Did they release you because the jail was too full, or did you break out. :wink:

1 Like

Cuz I ate too much.

1 Like

Ouch, did you get a bowell obstruction. :rofl:

2 Likes

I'll bet he was in Powersave mode.

2 Likes

Hey guys.....Here's something interesting. My Garuda survived an update after over 4 months.

The garuda-update script helps considerably. Even going six months should be doable, but you definitely need to have experience on an Arch system to wade through all the big changes.

There's a garuda-update script? I'm just kidding. I think I did use it after the 4 months, but I rarely use it honestly. I have to use a proxy and I haven't figured out how to make it work with a proxy. I think I'll have a closer look at it soon. I do always use it after a fresh install.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.