Git Product home page Git Product logo

powertop's People

Contributors

anssih avatar dirk-brandewie avatar dkalowsk avatar elfring avatar esyr avatar fenrus75 avatar gkammela avatar intelfx avatar kaccardi avatar kerolasa avatar magfr avatar mikelolasagasti avatar namhyung avatar neheb avatar nmarci1 avatar nswamina avatar olysonek avatar paulepanter avatar phmccarty avatar romainnaour avatar rostedt avatar sergey-senozhatsky avatar spandruvada avatar stewartsmith avatar stweil avatar thac0 avatar vapier avatar verygreen avatar ya-isakov avatar yarda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

powertop's Issues

Update kernel config options

Kernel options in README need updating:

  1. CONFIG_PERF_COUNTERS is obsolete and does nothing now, replaced with CONFIG_PERF_EVENTS
  2. CONFIG_SND_AC97_POWER_SAVE is replaced with CONFIG_SND_HDA_POWER_SAVE for modern hardware
  3. CONFIG_DEBUG_FS is required, if disabled powertop will exit with error "Failed to mount debugfs!\n"
  4. CONFIG_X86_MSR is required for intel cpu, powertop will not work when this optio is disabled

Updated and sorted list:
CONFIG_PERF_EVENTS
CONFIG_TRACEPOINTS
CONFIG_NO_HZ
CONFIG_HIGH_RES_TIMERS
CONFIG_HPET_TIMER
CONFIG_X86_MSR
CONFIG_ACPI_PROCFS_POWER
CONFIG_CPU_FREQ_STAT
CONFIG_CPU_FREQ_GOV_ONDEMAND
CONFIG_SND_HDA_POWER_SAVE
CONFIG_USB_SUSPEND
CONFIG_DEBUG_FS
CONFIG_TIMER_STATS
CONFIG_EVENT_POWER_TRACING_DEPRECATED
CONFIG_TRACING

documentation: Refresh the User's Guide

Once upon a time, the maintainers posted a PowerTOP User's Guide over at 01.org:

It's still pretty useful, but:

  • It's a static PDF (and users are unable to generate it from this repository),
  • Content is not under revision control in this repository, and
  • The present User's Guide is dusty and does not document all functionality

Objectives:

  • Write the Guide using a tool that can generate it in (at least) HTML
    • e.g. "heavier" tools like Doxygen (we already use it) or Sphinx (used by the Linux kernel); or "lighter", such as re-writing in markdown, or expanding our man(8) page.
    • Feel free to debate the merits of these below
  • Put User's Guide content under revision control in this repository

make - no such a file or directory.

I'm trying to update my version following the commands listed into the README file but when I try to run ./make I receive an output - no such a file or directory. What do I do wrong? I have installed all the sample packages for Ubuntu, I'm using elementary OS Hera, based on Ubuntu 18.04

tunables: check for needed utilities, and refuse to tune when needed utility is absent; when tuning fails, tell the user why

Behind the curtain, certain tunables invoke utilities, e.g. ethtool, to do the actual tuning work. If the needed utility is not on the path, PowerTOP does not gray out the tunable, nor does it always give a clear explanation when a tuning operation fails. Further, tuning failures are not always made obvious to the user.

Objectives:

  • Tunables, internally, need to know what their external (utilities on path) dependencies are
  • At startup, PowerTOP checks for the existence of all tunable dependency utilities on the path
  • Continue to enumerate and display all tunables, but "gray out" those that cannot be tuned because a needed utility is missing from the path
  • At startup, display warnings on stderr for each needed tool not found by PowerTOP

Is Powertop able to disable my keyboard and mouse when my PC is hibernated?

On both Windows and Linux, whenever I hibernate my PC, if I move my mouse it will wake the PC up. On Windows in device manager, there is an option where I can disable the ability for my mouse and keyboard to wake the PC up.

Can Powertop offer the same thing?


Additionally is there a GUI frontend app to Powertop?

tunables: scale out to include dedicated interfaces

As it stands, the notion of a "tunable" means, behind the curtain, that a script is needed to tune a given thing. While this is flexible to an extent, it tethers tuning functionality to external tools.

Objectives:
Provide tunable interfaces for sensible buckets of tunables, such as:

  • pci (e.g. toggling root and leaf device power settings directly through libpci),
  • sysfs (e.g. toggling a device driver's runtime power management bit), or
  • external tool (when the tunable really needs to run an external tool for the tuning)

Notes:

  1. A fair bit of interface refactoring/rewriting will be needed prior to implementation of dedicated tunable interfaces
  2. While there may be other buses, such as DBus (e.g. bluez), USB, AHCI, or NVMe, that would benefit from having dedicated tunable interfaces, only open issues for those after the tunables code is sufficiently scalable.

Powertop crashes when run with a cpu offline

Its pretty easy to reproduce:

# echo 0 > /sys/devices/system/cpu/cpu1/online
# powertop -d
modprobe cpufreq_stats failedLoaded 0 prior measurements
RAPL device for cpu 0
RAPL device for cpu 0
RAPL device for cpu 8
RAPL device for cpu 8
Devfreq not enabled
glob returned GLOB_ABORTED
Preparing to take measurements
Model-specific registers (MSR)			 not found (try enabling CONFIG_X86_MSR).
read_msr cpu1 0x60d : No such file or directory
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Of course it can't query the MSR, the CPU is offline.

Its probably a trivial fix, just skip CPUs if online==0.

Crash in __memmove_avx_unaligned_erms

  • Fedora 35
  • powertop 2.14

When running sudo powertop --html=powerreport.html, powertop crashes. The trace looks as follows

(gdb) bt full
#0  0x00007ffff7b63a3b in __memmove_avx_unaligned_erms () from /lib64/libc.so.6
No symbol table info available.
#1  0x0000555555576bbf in std::char_traits<char>::copy (__n=<optimized out>, __s2=0x7fffffffab00 "C1", __s1=<optimized out>) at /usr/include/c++/11/bits/char_traits.h:409
No locals.
#2  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy (__n=<optimized out>, __s=0x7fffffffab00 "C1", __d=<optimized out>) at /usr/include/c++/11/bits/basic_string.h:359
No locals.
#3  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy (__n=<optimized out>, __s=0x7fffffffab00 "C1", __d=<optimized out>) at /usr/include/c++/11/bits/basic_string.h:354
No locals.
#4  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator= (__str=..., this=0x555555af7de8) at /usr/include/c++/11/bits/basic_string.h:739
No locals.
#5  report_display_cpu_cstates () at cpu/cpu.cpp:580
        first_cpu = true
        first_core = false
        num_cpus = <optimized out>
        num_cores = <optimized out>
        pkg_data = 0x555555607f98
        core_data = <optimized out>
        cpu_data = <optimized out>
        buffer = "C1\000\060,0 ms\000\247\367\377\177\000\000\200\005\000\000\000\000\000\000\200\355\033WUU\000\000\300\257\377\377\377\177\000\000\310v\257UUU\000\000\220\260\377\377\377\177\000\000M\271YUUU\000\000\002\000\000\000\000\000\000\000h{\257UUU\000\000\200\355\033WUU\000\000\340\257\377\377\377\177\000\000\v\000\000\000\000\000\000\000\210\355\033WUU\000\000@\257\377\377\377\177\000\000Я\377\377\377\177\000\000\060\000\000\000\000\000\000\000\350u\257UUU\000\000\340u\257UUU\000\000\060\000\000\000\000\000\000\000\364\003[UUU\000\000!\024[UUU\000\000\020\b[UUU\000\000x6[UUU\000\000\331\003[UUU\000\000!"...
        buffer2 = "\000 0,0%\000\000@\255\377\377\377\177\000\000P\371]UUU\000\000Nѡ\367\377\177\000\000\230ؽ\367\377\177\000\000\370\255\377\377\377\177\000\000 \371]UUU\000\000\000\000\000\000\001", '\000' <repeats 11 times>, "`\255\377\377\377\177\000\000\200\375]UUU\000\000a6[UUU\000\000\026\000\000\000\000\000\000\000\026\000\000\000UU\000\000P\000\000\000\377\177\000\000>\000\000\000UU\000\000\377\377\377\377\377\377\377\377", '\000' <repeats 16 times>, "\n\000\000\000\000\000\000\000\377\377\377\377\377\177\000\000\000?0\262\224\t\022t\020\256\377\377\377\177\000\000\370\255\377\377\377\177\000\000 \371]UUU\000\000p\374"...
        tmp_num = "13\000e 6\000\000\230ؽ\367\377\177", '\000' <repeats 14 times>, "\377\177\000\000\000\375]UUU\000\000\220\257\377\377\000\000\000\000\220\257"
        package = 0
        core = 6
        cpu = <optimized out>
        line = 1
        cstates_num = 3
        title = 25
        core_num = 7
        _package = 0x5555555e1ce0
        _core = 0x5555555e3600
        _cpu = <optimized out>
        core_type = <optimized out>
        div_attr = {css_class = 0x5555555b0810 "clear_block", css_id = 0x5555555b12e4 "cpuidle"}
        std_table_css = {table_class = 0x7ffff7bdbaa0 <main_arena> "", td_class = 0xc <error: Cannot access memory at address 0xc>, tr_class = 0xe0 <error: Cannot access memory at address 0xe0>, 
          th_class = 0x7 <error: Cannot access memory at address 0x7>, pos_table_title = 208, title_mod = 0, rows = 1662457502, cols = 1145428308}
        pkg_tbl_size = {rows = 7, cols = 2}
        core_tbl_size = {rows = 32, cols = 2}
        cpu_tbl_size = {rows = 56, cols = 5}
        title_attr = {css_class = 0x5555555b03f4 "content_title", css_id = 0x5555555b1421 ""}
        idx1 = 10
        idx2 = 64
        idx3 = 160
        tmp_str = "C1"
#6  0x000055555556fc8a in one_measurement (seconds=<optimized out>, sample_interval=<optimized out>, workload=<optimized out>) at /usr/src/debug/powertop-2.14-2.fc35.x86_64/src/main.cpp:265
No locals.
#7  0x0000555555564bce in make_report (file=0x7fffffffc370 "powerreport.html", sample_interval=5, iterations=1, workload=0x7fffffffb370 "", time=20) at /usr/src/debug/powertop-2.14-2.fc35.x86_64/src/main.cpp:300
No locals.
#8  main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/powertop-2.14-2.fc35.x86_64/src/main.cpp:521
        option_index = 5
        c = <optimized out>
        filename = "powerreport.html", '\000' <repeats 2744 times>...
        workload = '\000' <repeats 4095 times>
        iterations = 1
        auto_tune = 0
        sample_interval = 5

PowerTOP reports over 100% C0 state residency

It seems it's reproducible on multiple systems.

It was originally reported by Erik Hamera [email protected], forwarding part of his report:

powertop reports over 400% in C0 in Idle stats on Alderlake-p.
I have thought about it and I remember when top has reported >100% on multi-CPU systems. But these statistics are per-CPU. OTOH there is an asymmetrical multiprocessing obviously:

# for a in `seq 1 19`; do echo -n "$a "; cat /sys/devices/system/cpu/cpu$a/topology/thread_siblings_list; done
1 0-1
2 2-3
3 2-3
4 4-5
5 4-5
6 6-7
7 6-7
8 8-9
9 8-9
10 10-11
11 10-11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19

So I guess, it's possible, that the faster cores are about 4.5 times faster, than slower ones and Powertop is calibrating itself on these slower ones. But I consider value over 100% as bug still, because it's very unintuitive. It's better to cap the faster one on 100% and adjust maximum for the slower one (around 22% in this case).

PowerTOP 2.14     Overview   Idle stats   Frequency stats   Device stats   Tunables   WakeUp                            


           Pkg(HW)  |            Core(HW) |            CPU(OS) 0   CPU(OS) 1
                    |                     | C0 active 445.1%        1.9%
                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms
                    |                     | C1_ACPI     0.0%    0.0 ms  0.0%    0.0 ms
C2 (pc2)    0.0%    |                     | C2_ACPI     0.0%    0.0 ms  0.2%    1.0 ms
C3 (pc3)    0.0%    | C3 (cc3)    0.0%    | C3_ACPI     0.0%    0.0 ms 99.5%    1.1 ms
C6 (pc6)    0.0%    | C6 (cc6)    0.0%    |
C7 (pc7)    0.0%    | C7 (cc7)    0.0%    |
C8 (pc8)    0.0%    |                     |
C9 (pc9)    0.0%    |                     |
C10 (pc10)  0.0%    |                     |

                    |            Core(HW) |            CPU(OS) 2   CPU(OS) 3
                    |                     | C0 active 445.2%        0.0%
                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms
                    |                     | C1_ACPI     0.0%    0.0 ms  0.0%    0.9 ms
                    |                     | C2_ACPI     0.0%    0.0 ms  0.0%    0.0 ms
                    | C3 (cc3)    0.0%    | C3_ACPI     0.0%    0.0 ms100.0%  835.4 ms
                    | C6 (cc6)    0.0%    |
                    | C7 (cc7)    0.0%    |
                    |                     |
                    |                     |
                    |                     |

                    |            Core(HW) |            CPU(OS) 4   CPU(OS) 5
                    |                     | C0 active   0.6%        0.0%
                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms
                    |                     | C1_ACPI     0.0%    0.2 ms  0.0%    0.0 ms
                    |                     | C2_ACPI     4.3%    0.9 ms  0.0%    0.0 ms
                    | C3 (cc3)    0.0%    | C3_ACPI    95.4%  265.7 ms100.0%  835.6 ms
                    | C6 (cc6)    4.3%    |
                    | C7 (cc7)   95.4%    |
                    |                     |
                    |                     |
                    |                     |

                    |            Core(HW) |            CPU(OS) 6   CPU(OS) 7
                    |                     | C0 active 445.1%        0.0%
                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms
                    |                     | C1_ACPI     0.0%    0.0 ms  0.0%    0.5 ms
                    |                     | C2_ACPI     0.0%    0.0 ms  0.2%    1.0 ms
                    | C3 (cc3)    0.0%    | C3_ACPI     0.0%    0.4 ms 99.8%  645.8 ms
                    | C6 (cc6)    0.0%    |
                    | C7 (cc7)    0.0%    |
                    |                     |
                    |                     |

Cannot turn off "Bluetooth device" tuneable

I'm using powertop, and it's a bit aggressive suspending my Bluetooth, so my mouse is suspended if I stop moving it for a few seconds.

I'm trying to turn this off by running powertop, and then in the Tuneables tab I select Bluetooth device interface status and hit enter.

This seems to attempt to run /usr/sbin/hciconfig hci0 up &> /dev/null &. However, hciconfig has been deprecated upstream and no longer ships with bluez (it's been absent for about 3 years now).

Bluez seems to now include btmgmt, though I haven't been able to figure out how to turn off power saving with it.

Powertop should allow for "sticky" tunables across reboots

I run Powertop with autotune on my Thinkpad T440, running Fedora 31 XFCE. As I basically want all turntables to be set on "Good". However, my USB mouse connected to my laptop freezes sporadically when it's turntable is set to "Good", so the USB autosuspend for my USB mouse is the is the only turntable I turn to "Bad". However, the turntable changes don't survive reboot, and no forum or post anywhere has a good, universal solution to this problem.

It would be far easier for end-users if Powertop could permanently write the turntable chances to the system so that your turntables survive rebooting, and it would make enabling and disabling the turntables for all kind of settings much easier.

Making complicated custom scripts for each mouse I'm going to use on my laptop, which might not work on different distros really is a bit much.

Comet Lake support

As subject, Comet Lake support is currently absent.
Is there any plan to add it?

`-C` and `-r` are not working

powertop -C --debug
modprobe cpufreq_stats failedLoaded 67 prior measurements
RAPL device for cpu 0
RAPL device for cpu 0
Devfreq not enabled
glob returned GLOB_ABORTED
Preparing to take measurements
To show power estimates do 344 measurement(s) connected to battery only
Segmentation fault
powertop -r --debug
modprobe cpufreq_stats failedLoaded 67 prior measurements
RAPL device for cpu 0
RAPL device for cpu 0
Devfreq not enabled
glob returned GLOB_ABORTED
Preparing to take measurements
To show power estimates do 344 measurement(s) connected to battery only
Segmentation fault

Jittery input through dock

Hardware: Dell Latitude E7270
I use an official Dell docking station (can't recall the exact name, But it's an Eport with USB3 support, without the serial ports)

When I powerTOP is running, and I set the laptop in the dock, the Logitech Unify input devices get jittery the mouse does not move properly, and key strokes are often delayed.

Powertop is run with powertop --auto-tune

running powertop drops all scaling_max_frequency to lowest on arm64 yoga c630 laptop

Hello, On ubuntu 20.04 with powertop (from repo or newest git) when I run the program It sets my scaling_max_frequency to lowest possible frequency. My laptop has 4 slow cores at 1.7ghz and 4 fast cores at 2.9ghz. It seems mostly random on which cores it will make slow, usually (%65? of time) the slow cores get slowed, slightly less often the higher cores get slowed and sometimes both. I edited src/cpu/abstract_cpu.cpp and commented out lines 479 to 492 which are supposed to reapply correct max scaling freq after "wiggling" the cpu .Now the issue seems to have stopped. I can fix the cpu's by simply running;
echo 2956800 > /sys/devices/system/cpu/cpufreq/policy4/scaling_max_freq
echo 1766400 > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

If this is caused by the HMP multicore setup or something else Im not sure. If a fix could be mainlined even if a command line or compile time option would be great. Thank you

Bogus (380 mW) value for power consumption

I have a HP EliteBook 735 G6 laptop. It is AMD-based. On it, powertop reports completely bogus values for power consumption and battery time remaining. Something like:

The battery reports a discharge rate of 368 mW
The energy consumed was 7.38 J
The estimated remaining time is 50 hours, 6 minutes

At the same time, Cinnamon battery applet correctly reports that the battery is good only for 2 hours and 20 minutes.

Presumably, this is because none of the methods that powertop can use for determining the battery discharge rate actually works:

20:06:58.602628 openat(AT_FDCWD, "/sys/class/power_supply/BAT0/present", O_RDONLY) = 123
20:06:58.602687 read(123, "1\n", 8191)  = 2
20:06:58.603210 openat(AT_FDCWD, "/sys/class/power_supply/BAT0/status", O_RDONLY) = 123
20:06:58.603286 read(123, "Discharging\n", 8191) = 12
20:06:58.604335 openat(AT_FDCWD, "/sys/class/power_supply/BAT0/power_now", O_RDONLY) = -1 ENOENT (No such file or directory)
20:06:58.604398 openat(AT_FDCWD, "/sys/class/power_supply/BAT0/energy_now", O_RDONLY) = -1 ENOENT (No such file or directory)
20:06:58.604449 openat(AT_FDCWD, "/sys/class/power_supply/BAT0/voltage_now", O_RDONLY) = 123
20:06:58.604500 read(123, "11140000\n", 8191) = 9
20:06:58.604571 openat(AT_FDCWD, "/sys/class/power_supply/BAT0/current_now", O_RDONLY) = 123
20:06:58.604620 read(123, 0x5630a5a7e730, 8191) = -1 ENODEV (No such device)

The only usable attribute is charge_now, but, alas, powertop does not know how to use it.

$ LANG=en_US.UTF-8 grep -rH .
uevent:POWER_SUPPLY_NAME=BAT0
uevent:POWER_SUPPLY_TYPE=Battery
uevent:POWER_SUPPLY_STATUS=Discharging
uevent:POWER_SUPPLY_PRESENT=1
uevent:POWER_SUPPLY_TECHNOLOGY=Li-ion
uevent:POWER_SUPPLY_CYCLE_COUNT=35
uevent:POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11550000
uevent:POWER_SUPPLY_VOLTAGE_NOW=11166000
uevent:POWER_SUPPLY_CHARGE_FULL_DESIGN=4330000
uevent:POWER_SUPPLY_CHARGE_FULL=3009000
uevent:POWER_SUPPLY_CHARGE_NOW=1459000
uevent:POWER_SUPPLY_CAPACITY=48
uevent:POWER_SUPPLY_CAPACITY_LEVEL=Normal
uevent:POWER_SUPPLY_MODEL_NAME=Primary
uevent:POWER_SUPPLY_MANUFACTURER=Hewlett-Packard
uevent:POWER_SUPPLY_SERIAL_NUMBER=13856 2020/04/22
charge_full_design:4330000
serial_number:13856 2020/04/22
technology:Li-ion
grep: current_now: No such device
charge_now:1459000
present:1
power/runtime_active_time:0
power/runtime_status:unsupported
grep: power/autosuspend_delay_ms: Input/output error
power/runtime_suspended_time:0
power/control:auto
manufacturer:Hewlett-Packard
hwmon2/in0_input:11166
hwmon2/power/runtime_active_time:0
hwmon2/power/runtime_status:unsupported
grep: hwmon2/power/autosuspend_delay_ms: Input/output error
hwmon2/power/runtime_suspended_time:0
hwmon2/power/control:auto
grep: hwmon2/curr1_input: No such device
hwmon2/name:BAT0
type:Battery
charge_full:3009000
capacity:48
cycle_count:35
voltage_now:11166000
status:Discharging
alarm:0
model_name:Primary
voltage_min_design:11550000
capacity_level:Normal

gettext version on Ubuntu.

I have an up to date Ubuntu LTS, and used the apt command from the documentation.

Why trying to build...

$ sh autogen.sh 
autoreconf: Entering directory `.'
autoreconf: running: autopoint
autopoint: *** The AM_GNU_GETTEXT_VERSION declaration in your configure.ac
               file requires the infrastructure from gettext-0.20.2 but this version
               is older. Please upgrade to gettext-0.20.2 or newer.
autopoint: *** Stop.
autoreconf: autopoint failed with exit status: 1

Is the version dictated by configure.ac unnecessary high, or does Ubuntu LTS just lag too much?

$ dpkg --list | grep libgettext
ii  libgettextpo-dev:amd64                     0.19.8.1-10build1                     amd64        process PO files - static libraries and headers
ii  libgettextpo0:amd64                        0.19.8.1-10build1                     amd64        process PO files - shared library

kernel config affecting powertop measurements

This is not a bug.
Do you know which kernel (or other) config could cause different behavior as measured in powertop and should be looked at?
On battery, doing nothing: arch linux vs void linux, all others being similar.

Pkg(HW)

C2 (pc2)    5.6%
C3 (pc3)    0.0%
C6 (pc6)   11.8%
C7 (pc7)    0.1%
C8 (pc8)   46.7%
C9 (pc9)    0.4%
C10 (pc10) 34.6%
Pkg(HW)

C2 (pc2)    8.1%
C3 (pc3)   89.2%
C6 (pc6)    0.0%
C7 (pc7)    0.0%
C8 (pc8)    0.0%
C9 (pc9)    0.0%
C10 (pc10)  0.0%

Thanks.

Rocket Lake support

Hi!
I wondered whether there is Rocket Lake in powertop.
Do you guys have the resources to add it?

unportable usage of strerror_r without configure check

when compiling against musl libc:

event-parse.c: In function 'pevent_strerror':
event-parse.c:5124:7: warning: assignment makes pointer from integer without a cast

only GNU libc defines strerror_r as returning char*:
https://www.gnu.org/software/autoconf/manual/autoconf-2.64/html_node/Function-Portability.html

strerror_r
Posix specifies that strerror_r returns an int, but many systems (e.g., GNU C Library version 2.2.4) provide a different version returning a char *. AC_FUNC_STRERROR_R can detect which is in use (see Particular Functions).

sorry that i use this method to notify you of the issue, but i don't want to subscribe to a ML.

(Originally reported as PR, #24)

libtraceevent: refactor code to utilize the latest version

PowerTOP has been using, and lugging around, a dusty version of libtraceevent for some time.

libtraceevent has been incorporated in the Linux kernel sources as a library. A number of distributions are shipping libtraceevent as a package. Therefore, it's time to refactor our code to fully leverage the work Steven and the tracing community have done over the past several years.

Stats for display backlight being reported as 0mW

Hello

I was wondering what do I need do, so that powertop will properly read stats for my laptop's (lenovo e531) display.
In case it's relevant, my GPU is a hybrid intel HD 4000/nvidia 740m one. I've already tried with both.

Currently this is how it looks like: 19.9%;Display backlight; 0 mW

I already tried setting the kernel's option acpi_backlight=vendor, but it made no difference.

These is how my current relevant kernel's config flags looks like:

$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_NO_HZ
CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ=y
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_HIGH_RES_TIMERS
CONFIG_HIGH_RES_TIMERS=y
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_HPET_TIMER
CONFIG_HPET_TIMER=y
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_CPU_FREQ_GOV_ONDEMAND
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_USB_SUSPEND
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_SND_AC97_POWER_SAVE
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_TIMER_STATS
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_PERF_EVENTS
CONFIG_PERF_EVENTS=y
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_PERF_EVENTS_INTEL_RAPL=m
CONFIG_PERF_EVENTS_INTEL_CSTATE=m
# CONFIG_PERF_EVENTS_AMD_POWER is not set
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_EVENT_POWER_TRACING_DEPRECATED
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_X86_MSR
CONFIG_X86_MSR=m
$ cat /lib/modules/$(uname -r)/build/.config | grep ACPI_PROCFS_POWER
# CONFIG_ACPI_PROCFS_POWER is not set
$ cat /lib/modules/$(uname -r)/build/.config | grep CONFIG_DEBUG_FS
CONFIG_DEBUG_FS=y

Debug report:

____________________________________________________________________
			P o w e r T O P

____________________________________________________________________
 *  *  *   System Information   *  *  *

PowerTOP Version;v2.11-1-g7ef7f79 ran at Sat Jun 20 14:50:09 2020

Kernel Version;Linux version 5.4.0-37-generic
System Name;LENOVO68851L2ThinkPad Edge E531
CPU Information;4 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
OS Information;Ubuntu 20.04 LTS

Target: 1 units/s;System:  196.1 wakeup/s;CPU:  3.2% usage;GPU: 0 ops/s;GFX: 5.9 wakeups/s;VFS: 0 ops/s;

____________________________________________________________________
 *  *  *   Top 10 Power Consumers   *  *  *

Usage;Events/s;Category;Description;PW Estimate
100.0%;;Device;Audio codec hwC0D0: Conexant;  500 mW  
100.0%;;Device;Audio codec hwC0D3: Intel;  500 mW  
  0.5%; 31.1;Process;[PID 3541] /usr/lib/firefox/firefox ;  130 mW  
  0.0%; 22.6;Timer;tick_sched_timer; 89.8 mW  
  0.2%; 18.3;Process;[PID 3553] /usr/lib/firefox/firefox ; 74.9 mW  
  0.3%; 13.5;Process;[PID 4017] /usr/lib/firefox/firefox -contentproc -childID 12 -isForBrowser -prefsLen 7433 -prefMapSize 227248 -parentBuildID 20; 58.3 mW  
  0.3%; 11.4;Process;[PID 3903] /usr/lib/firefox/firefox -contentproc -childID 9 -isForBrowser -prefsLen 7361 -prefMapSize 227248 -parentBuildID 202; 49.4 mW  
  0.3%;  9.4;Process;[PID 2493] cinnamon --replace ; 46.5 mW  
  0.1%; 10.2;Interrupt;[6] tasklet(softirq); 41.8 mW  
  0.0%;  8.5;kWork;psi_avgs_work; 33.9 mW  

____________________________________________________________________
 *  *  *   Processor Idle State Report   *  *  *

Package;0
C2 (pc2);  0.4%
C3 (pc3);  0.0%
C6 (pc6);  1.3%
C7 (pc7); 87.9%
;
;
;

;Core 0
C3 (cc3);  0.0%
C6 (cc6);  0.0%
C7 (cc7); 98.1%
;Core 1
C3 (cc3);  0.1%
C6 (cc6);  0.0%
C7 (cc7); 97.5%
;GPU 0
Powered On;  7.4%
RC6;  9.5%
RC6p; 83.1%
RC6pp;  0.0%

CPU;0;CPU;1
C0 active;  0.4%;  0.5%;
POLL;  0.0%;   0.0 ms;  0.0%;   0.0 ms
C1;  0.0%;   0.0 ms;  0.0%;   0.0 ms
C1E;  0.0%;   0.3 ms;  0.0%;   0.3 ms
C3;  0.0%;   0.3 ms;  0.0%;   0.2 ms
C6;  0.0%;   0.0 ms;  0.0%;   0.0 ms
C7; 99.1%;  21.2 ms; 99.0%;  26.3 ms
CPU;2;CPU;3
C0 active;  0.5%;  0.5%;
POLL;  0.0%;   0.0 ms;  0.0%;   0.0 ms
C1;  0.0%;   0.7 ms;  0.0%;   0.1 ms
C1E;  0.1%;   0.6 ms;  0.0%;   0.2 ms
C3;  0.0%;   0.5 ms;  0.0%;   0.4 ms
C6;  0.0%;   0.0 ms;  0.0%;   0.0 ms
C7; 98.7%;  20.5 ms; 98.9%;  17.2 ms
;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;
;;;;

____________________________________________________________________
 *  *  *   Processor Frequency Report   *  *  *

Package;0
Idle;
3.21 GHz;
2.40 GHz;
2.00 GHz;
2.10 GHz;
1500 MHz;
1.80 GHz;
1.60 GHz;
1400 MHz;
1200 MHz;
1300 MHz;
;
;
;

;Core 0
Idle;
1.91 GHz;
2.71 GHz;
2.00 GHz;
3.21 GHz;
1.80 GHz;
1.60 GHz;
1500 MHz;
1200 MHz;
1300 MHz;
;Core 1
Idle;
1.91 GHz;
2.71 GHz;
2.00 GHz;
3.21 GHz;
1.80 GHz;
1.60 GHz;
1500 MHz;
1300 MHz;
1200 MHz;
1400 MHz;
;
;
;
;
;
;
;
;
;
;
;
;
;

CPU 0;CPU 1
Average;  1291 MHz;  1244 MHz
Idle;
2.71 GHz;
2.00 GHz;
1.91 GHz;
3.21 GHz;
1.80 GHz;
1.60 GHz;
1200 MHz;
1300 MHz;
CPU 2;CPU 3
Average;  1213 MHz;  1210 MHz
Idle;
1.91 GHz;
2.71 GHz;
2.00 GHz;
3.21 GHz;
1.80 GHz;
1.60 GHz;
1500 MHz;
1200 MHz;
1300 MHz;
1400 MHz;
;
;;
;;
;;
;;
;;
;;
;;
;;
;;
;;
;;
;;
;;
;;
;;

____________________________________________________________________
 *  *  *   Overview of Software Power Consumers   *  *  *

Usage;Wakeups/s;GPU ops/s;Disk IO/s;GFX Wakeups/s;Category;Description;PW Estimate
  4.9 ms/s; 31.1;;;;Process;[PID 3541] /usr/lib/firefox/firefox ;  130 mW  
383.4 us/s; 22.6;;;;Timer;tick_sched_timer; 89.8 mW  
  1.6 ms/s; 18.3;;;;Process;[PID 3553] /usr/lib/firefox/firefox ; 74.9 mW  
  3.2 ms/s; 13.5;;;;Process;[PID 4017] /usr/lib/firefox/firefox -contentproc -childID 12 -isForBrowser -prefsLen 7433 -prefMapSize 227248 -parentBuildID 20; 58.3 mW  
  2.8 ms/s; 11.4;;;;Process;[PID 3903] /usr/lib/firefox/firefox -contentproc -childID 9 -isForBrowser -prefsLen 7361 -prefMapSize 227248 -parentBuildID 202; 49.4 mW  
  3.0 ms/s;  9.4;;;  4.5;Process;[PID 2493] cinnamon --replace ; 46.5 mW  
  0.9 ms/s; 10.2;;;;Interrupt;[6] tasklet(softirq); 41.8 mW  
 84.0 us/s;  8.5;;;;kWork;psi_avgs_work; 33.9 mW  
  1.0 ms/s;  6.3;;;;Process;[PID 4141] /usr/lib/firefox/firefox -contentproc -childID 14 -isForBrowser -prefsLen 7529 -prefMapSize 227248 -parentBuildID 20; 26.6 mW  
100.4 us/s;  6.5;;;;Process;[PID 11] [rcu_sched]; 26.0 mW  
  0.9 ms/s;  5.3;;;;Process;[PID 3577] /usr/lib/firefox/firefox ; 22.4 mW  
  1.2 ms/s;  3.6;;;;Process;[PID 3686] /usr/lib/firefox/firefox -contentproc -childID 3 -isForBrowser -prefsLen 6439 -prefMapSize 227248 -parentBuildID 202; 16.0 mW  
  0.8 ms/s;  3.4;;;  0.8;Process;[PID 2875] /usr/libexec/gnome-terminal-server ; 15.5 mW  
329.6 us/s;  3.5;;;;Process;[PID 3916] /usr/lib/firefox/firefox -contentproc -childID 9 -isForBrowser -prefsLen 7361 -prefMapSize 227248 -parentBuildID 202; 14.3 mW  
200.3 us/s;  3.3;;;;Process;[PID 4030] /usr/lib/firefox/firefox -contentproc -childID 12 -isForBrowser -prefsLen 7433 -prefMapSize 227248 -parentBuildID 20; 13.3 mW  
213.7 us/s;  3.1;;;;Process;[PID 4154] /usr/lib/firefox/firefox -contentproc -childID 14 -isForBrowser -prefsLen 7529 -prefMapSize 227248 -parentBuildID 20; 12.6 mW  
688.8 us/s;  2.9;;;;Process;[PID 4092] /usr/lib/firefox/firefox -contentproc -childID 13 -isForBrowser -prefsLen 7480 -prefMapSize 227248 -parentBuildID 20; 12.5 mW  
101.7 us/s;  3.1;;;;Interrupt;[33] i915; 12.4 mW  
274.4 us/s;  1.9;;;;Process;[PID 4401] powertop --csv=report.csv ; 7.93 mW  
568.2 us/s;  1.5;;;;Interrupt;[7] sched(softirq); 6.81 mW  
262.4 us/s;  1.2;;;  0.6;Process;[PID 2620] /usr/bin/redshift -v ; 5.75 mW  
117.0 us/s;  1.4;;;;Process;[PID 4106] /usr/lib/firefox/firefox -contentproc -childID 13 -isForBrowser -prefsLen 7480 -prefMapSize 227248 -parentBuildID 20; 5.71 mW  
  1.5 ms/s;  0.8;;;;Process;[PID 1582] /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch ; 5.68 mW  
225.4 us/s;  1.3;;;;Process;[PID 3738] /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -prefsLen 7204 -prefMapSize 227248 -parentBuildID 202; 5.48 mW  
 50.4 us/s;  1.3;;;;Interrupt;[4] block(softirq); 5.41 mW  
 92.4 us/s;  1.2;;;;Process;[PID 3699] /usr/lib/firefox/firefox -contentproc -childID 3 -isForBrowser -prefsLen 6439 -prefMapSize 227248 -parentBuildID 202; 4.88 mW  
  0.7 ms/s;  0.9;;;;Process;[PID 2539] /usr/libexec/tracker-miner-fs ; 4.66 mW  
 14.9 us/s;  1.0;;;;kWork;intel_atomic_cleanup_work; 4.17 mW  
  2.2 us/s;  1.0;;;;kWork;intel_atomic_helper_free_state_; 4.15 mW  
 40.0 us/s;  1.0;;;;Process;[PID 2478] /usr/libexec/gvfs-afc-volume-monitor ; 4.01 mW  
  7.9 us/s;  1.0;;;;kWork;pci_pme_list_scan; 3.96 mW  
 10.8 us/s;  0.9;;;;Timer;watchdog_timer_fn; 3.57 mW  
  2.1 ms/s;;;;;Timer;wl_timer; 3.34 mW  
  0.0 us/s;  0.8;;;;kWork;intel_atomic_commit_work; 3.16 mW  
 47.2 us/s;  0.7;;;;Process;[PID 3694] /usr/lib/firefox/firefox -contentproc -childID 3 -isForBrowser -prefsLen 6439 -prefMapSize 227248 -parentBuildID 202; 2.84 mW  
194.0 us/s;  0.5;;;;Process;[PID 1262] /usr/sbin/NetworkManager --no-daemon ; 2.47 mW  
 46.3 us/s;  0.6;;;;Process;[PID 4101] /usr/lib/firefox/firefox -contentproc -childID 13 -isForBrowser -prefsLen 7480 -prefMapSize 227248 -parentBuildID 20; 2.44 mW  
  8.8 us/s;  0.6;;;;kWork;blk_mq_requeue_work; 2.38 mW  
 41.9 us/s;  0.5;;;;Process;[PID 3764] /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -prefsLen 7204 -prefMapSize 227248 -parentBuildID 202; 2.04 mW  
 29.2 us/s;  0.5;;;;Process;[PID 3007] /usr/libexec/fwupd/fwupd ; 2.02 mW  
  0.0 us/s;  0.4;;;;kWork;disk_events_workfn; 1.78 mW  
 22.4 us/s;  0.4;;;;Process;[PID 1748] /usr/bin/containerd ; 1.61 mW  
 11.3 us/s;  0.4;;;;Process;[PID 1610] /usr/bin/containerd ; 1.60 mW  
 92.8 us/s;  0.3;;;;kWork;hangcheck_elapsed; 1.53 mW  
 39.7 us/s;  0.3;;;;Process;[PID 300] [jbd2/sda6-8]; 1.44 mW  
 36.5 us/s;  0.3;;;;Process;[PID 1297] /usr/lib/accountsservice/accounts-daemon ; 1.44 mW  
 12.5 us/s;  0.3;;;;kWork;vmstat_shepherd; 1.40 mW  
  2.5 us/s;  0.3;;;;kWork;handle_update; 1.39 mW  
  1.4 us/s;  0.3;;;;kWork;blk_mq_timeout_work; 1.38 mW  
 35.5 us/s; 0.30;;;;Process;[PID 2625] nemo-desktop ; 1.24 mW  
 15.7 us/s; 0.30;;;;Process;[PID 1607] /usr/bin/containerd ; 1.21 mW  
  0.7 us/s; 0.30;;;;Timer;intel_uncore_fw_release_timer; 1.19 mW  
617.4 us/s; 0.05;;;;Timer;hrtimer_wakeup; 1.16 mW  
 25.1 us/s; 0.25;;;;Process;[PID 3002] /usr/libexec/fwupd/fwupd ; 1.03 mW  
 22.7 us/s; 0.25;;;;Process;[PID 2966] update-notifier ; 1.02 mW  
 20.4 us/s; 0.25;;;;Process;[PID 2968] /usr/bin/gnome-software --gapplication-service ; 1.02 mW  
 17.2 us/s; 0.25;;;;kWork;retire_work_handler; 1.01 mW  
 83.4 us/s; 0.20;;;;Process;[PID 354] /lib/systemd/systemd-journald ;  920 uW  
 57.6 us/s; 0.20;;;;Process;[PID 1399] /usr/sbin/vnstatd -n ;  879 uW  
 30.4 us/s; 0.20;;;;Process;[PID 2579] nm-applet ;  837 uW  
  1.6 us/s; 0.20;;;;Timer;it_real_fn;  792 uW  
 39.2 us/s; 0.15;;;;Process;[PID 2571] nemo-desktop ;  653 uW  
 31.7 us/s; 0.15;;;;Process;[PID 2530] cinnamon --replace ;  642 uW  
 15.9 us/s; 0.15;;;;Process;[PID 2397] /usr/lib/x86_64-linux-gnu/cinnamon-settings-daemon/csd-xsettings ;  617 uW  
 10.9 us/s; 0.15;;;;Process;[PID 1095] [jbd2/sda8-8];  609 uW  
  1.3 us/s; 0.15;;;;kWork;neigh_periodic_work;  594 uW  
  0.9 us/s; 0.15;;;;Timer;sched_rt_period_timer;  593 uW  
 58.1 us/s; 0.10;;;;Process;[PID 1270] /usr/sbin/irqbalance --foreground ;  485 uW  
 55.4 us/s; 0.10;;;;Process;[PID 2249] /lib/systemd/systemd --user ;  481 uW  
 52.9 us/s; 0.10;;;;Process;[PID 4415] tracker-miner-f;  477 uW  
 50.0 us/s; 0.10;;;;Process;[PID 2526] cinnamon --replace ;  473 uW  
 41.3 us/s; 0.10;;;;kWork;__i915_gem_free_work;  459 uW  
 33.9 us/s; 0.10;;;;Process;[PID 2583] /usr/lib/caribou/caribou ;  448 uW  
 19.4 us/s; 0.10;;;;Process;[PID 1260] /usr/sbin/cupsd -l ;  425 uW  
140.6 us/s; 0.05;;;;Process;[PID 2420] /usr/lib/x86_64-linux-gnu/cinnamon-settings-daemon/csd-housekeeping ;  417 uW  
 12.0 us/s; 0.10;;;;Process;[PID 4414] tracker-miner-f;  413 uW  
  6.6 us/s; 0.10;;;;Process;[PID 1317] /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant ;  405 uW  
  5.8 us/s; 0.10;;;;Process;[PID 2045] /usr/libexec/rtkit-daemon ;  404 uW  
  3.8 us/s; 0.10;;;;Process;[PID 2533] cinnamon --replace ;  401 uW  
  0.4 us/s; 0.10;;;;kWork;gen6_pm_rps_work;  395 uW  
240.0 us/s;;;;;Timer;delayed_work_timer_fn;  374 uW  
 79.0 us/s; 0.05;;;;kWork;delayed_fput;  321 uW  
201.2 us/s;;;;;Interrupt;[1] timer(softirq);  314 uW  
171.3 us/s;;;;;Interrupt;[17] wlp4s0;  267 uW  
 18.4 us/s; 0.05;;;;Process;[PID 1768] /usr/bin/containerd ;  226 uW  
 13.8 us/s; 0.05;;;;Process;[PID 4415] pool-tracker-mi;  219 uW  
 13.0 us/s; 0.05;;;;Process;[PID 2964] /usr/bin/gnome-software --gapplication-service ;  218 uW  
 11.2 us/s; 0.05;;;;Process;[PID 1361] /usr/sbin/rsyslogd -n -iNONE ;  215 uW  
  9.8 us/s; 0.05;;;;kWork;__i915_globals_park;  213 uW  
  9.4 us/s; 0.05;;;;Process;[PID 4414] pool-tracker-mi;  212 uW  
  8.9 us/s; 0.05;;;;Process;[PID 1359] /usr/sbin/rsyslogd -n -iNONE ;  211 uW  
  8.7 us/s; 0.05;;;;kWork;wb_workfn;  211 uW  
  5.2 us/s; 0.05;;;;Process;[PID 4373] /usr/bin/gedit --gapplication-service ;  205 uW  
  4.3 us/s; 0.05;;;;Process;[PID 2528] cinnamon --replace ;  204 uW  
  3.9 us/s; 0.05;;;;Process;[PID 2326] /usr/bin/ssh-agent /usr/bin/im-launch cinnamon-session-cinnamon ;  203 uW  
  2.5 us/s; 0.05;;;;Process;[PID 1131] /sbin/rpcbind -f -w ;  201 uW  
  1.5 us/s; 0.05;;;;kWork;free_work;  200 uW  
127.7 us/s;;;;;Process;[PID 4262] [kworker/u16:0];  199 uW  
;;;;;;;
;;;;;;;


The system baseline power is estimated at:  1.82  W;
____________________________________________________________________
 *  *  *   Device Power Report   *  *  *

Usage;Device Name;PW Estimate
  3.2%;CPU misc;  572 mW   
100.0%;Audio codec hwC0D3: Intel;  500 mW   
100.0%;Audio codec hwC0D0: Conexant;  500 mW   
  3.2%;CPU core;  253 mW   
100.0%;USB device: 2.4G Wireless Mouse (MOSART Semi.);    0 mW   
100.0%;Radio device: btusb;    0 mW   
100.0%;Radio device: thinkpad_acpi;    0 mW   
100.0%;USB device: xHCI Host Controller;    0 mW   
	 19.9%;Display backlight;    0 mW   
100.0%;Radio device: wl;           
100.0%;Radio device: wl;           
100.0%;PCI Device: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode];           
100.0%;PCI Device: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader;           
100.0%;PCI Device: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1;           
100.0%;PCI Device: Intel Corporation HM77 Express Chipset LPC Controller;           
100.0%;PCI Device: Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1;           
100.0%;PCI Device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller;           
100.0%;PCI Device: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 4;           
100.0%;PCI Device: Intel Corporation 3rd Gen Core processor DRAM Controller;           
100.0%;PCI Device: Intel Corporation 3rd Gen Core processor Graphics Controller;           
100.0%;PCI Device: Broadcom Inc. and subsidiaries BCM43228 802.11a/b/g/n;           
100.0%;PCI Device: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller;           
100.0%;PCI Device: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2;           
100.0%;PCI Device: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2;           
100.0%;PCI Device: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller;           
100.0%;PCI Device: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller;           
100.0%;PCI Device: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1;           
  0.0%;USB device: usb-device-8087-0024;           
  0.0%;PCI Device: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port;           
  0.0%;USB device: EHCI Host Controller;           
  0.0%;USB device: BCM20702A0 (Broadcom Corp);           
  0.0%;USB device: usb-device-8087-0024;           
  0.0%;USB device: xHCI Host Controller;           
  0.0%;USB device: Integrated Camera (J1DD5S22H);           
  0.0%;USB device: EHCI Host Controller;           
  0.0%;Thinkpad light;           
  0.0 pkts/s;Network interface: enp5s0 (r8169);           
  0.0%;PCI Device: NVIDIA Corporation GK208M [GeForce GT 740M];           
  0.0 pkts/s;Network interface: wlp4s0 (wl);           
  0.0%;runtime-intel_rapl_msr.0;           
  0.0%;runtime-alarmtimer.0.auto;           
  0.0%;runtime-reg-dummy;           
  0.0%;runtime-rtsx_pci_sdmmc.0;           
  0.0%;runtime-PNP0C0D:00;           
  0.0%;runtime-PNP0C09:00;           
  0.0%;runtime-PNP0C0A:00;           
  0.0%;runtime-thinkpad_hwmon;           
  0.0%;runtime-ACPI0003:00;           
  0.0%;runtime-eisa.0;           
  0.0%;runtime-microcode;           
  0.0%;runtime-LEN0068:00;           
  0.0%;runtime-i8042;           
  0.0%;runtime-Fixed MDIO bus.0;           
  0.0%;I2C Adapter (i2c-5): i915 gmbus dpb;           
  0.0%;runtime-PNP0C0C:00;           
  0.0%;runtime-INT0800:00;           
  0.0%;runtime-vesa-framebuffer.0;           
  0.0%;runtime-thinkpad_acpi;           
  0.0%;runtime-coretemp.0;           
  0.0%;runtime-regulatory.0;           
  0.0%;runtime-PNP0800:00;           
  0.0%;runtime-PNP0103:00;           
  0.0%;runtime-PNP0C04:00;           
  0.0%;runtime-serial8250;           
  0.0%;runtime-PNP0C14:00;           
  0.0%;runtime-iTCO_wdt.1.auto;           
  0.0%;runtime-rtsx_pci_ms.0;           
  0.0%;runtime-pcspkr;           
  0.0%;I2C Adapter (i2c-3): i915 gmbus panel;           
  0.0%;I2C Adapter (i2c-1): i915 gmbus ssc;           
  0.0%;I2C Adapter (i2c-8): DPDDC-C;           
  0.0%;I2C Adapter (i2c-6): i915 gmbus dpd;           
  0.0%;I2C Adapter (i2c-4): i915 gmbus dpc;           
  0.0%;I2C Adapter (i2c-2): i915 gmbus vga;           
  0.0%;I2C Adapter (i2c-0): SMBus I801 adapter at efa0;           
  0.0%;I2C Adapter (i2c-7): DPDDC-B;           
____________________________________________________________________
 *  *  *   Process Device Activity   *  *  *

Process;Device
systemd;/dev/autofs
;/dev/kmsg
systemd-journal;/dev/kmsg
;/dev/kmsg
acpid;/dev/input/event0
;/dev/input/event1
;/dev/input/event10
;/dev/input/event11
;/dev/input/event12
;/dev/input/event13
;/dev/input/event2
;/dev/input/event3
;/dev/input/event7
;/dev/input/event8
;/dev/input/event9
bluetoothd;/dev/rfkill
systemd-logind;/dev/input/event0
;/dev/input/event1
;/dev/input/event2
;/dev/input/event3
;/dev/input/event7
wpa_supplicant;/dev/rfkill
none;/dev/kmsg
Xorg;/dev/dri/card0
;/dev/dri/card0
;/dev/input/event0
;/dev/input/event14
;/dev/input/event2
;/dev/input/event3
;/dev/input/event4
;/dev/input/event6
;/dev/input/event7
;/dev/input/event8
;/dev/input/event9
;/dev/vga_arbiter
upowerd;/dev/input/event1
pulseaudio;/dev/snd/controlC0
;/dev/snd/controlC0
;/dev/snd/controlC0
gvfsd-fuse;/dev/fuse
cinnamon;/dev/dri/card0
blueman-applet;/dev/rfkill

____________________________________________________________________
 *  *  *   AHCI ALPM Residency Statistics - Not supported on this macine   *  *  *

____________________________________________________________________
 *  *  *   Software Settings in Need of Tuning   *  *  *

Description;Script
Enable SATA link power management for host4;echo 'min_power' > '/sys/class/scsi_host/host4/link_power_management_policy';
Enable SATA link power management for host5;echo 'min_power' > '/sys/class/scsi_host/host5/link_power_management_policy';
Enable SATA link power management for host3;echo 'min_power' > '/sys/class/scsi_host/host3/link_power_management_policy';
Enable SATA link power management for host1;echo 'min_power' > '/sys/class/scsi_host/host1/link_power_management_policy';
Enable SATA link power management for host2;echo 'min_power' > '/sys/class/scsi_host/host2/link_power_management_policy';
Enable SATA link power management for host0;echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy';
Enable Audio codec power management;echo '1' > '/sys/module/snd_hda_intel/parameters/power_save';
Runtime PM for I2C Adapter i2c-2 (i915 gmbus vga);echo 'auto' > '/sys/bus/i2c/devices/i2c-2/device/power/control';
Runtime PM for I2C Adapter i2c-0 (SMBus I801 adapter at efa0);echo 'auto' > '/sys/bus/i2c/devices/i2c-0/device/power/control';
Runtime PM for I2C Adapter i2c-4 (i915 gmbus dpc);echo 'auto' > '/sys/bus/i2c/devices/i2c-4/device/power/control';
Runtime PM for I2C Adapter i2c-1 (i915 gmbus ssc);echo 'auto' > '/sys/bus/i2c/devices/i2c-1/device/power/control';
Runtime PM for I2C Adapter i2c-3 (i915 gmbus panel);echo 'auto' > '/sys/bus/i2c/devices/i2c-3/device/power/control';
Autosuspend for USB device 2.4G Wireless Mouse [MOSART Semi.];echo 'auto' > '/sys/bus/usb/devices/3-3/power/control';
Runtime PM for I2C Adapter i2c-5 (i915 gmbus dpb);echo 'auto' > '/sys/bus/i2c/devices/i2c-5/device/power/control';
Runtime PM for I2C Adapter i2c-6 (i915 gmbus dpd);echo 'auto' > '/sys/bus/i2c/devices/i2c-6/device/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1;echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.0/power/control';
Runtime PM for PCI Device Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader;echo 'auto' > '/sys/bus/pci/devices/0000:03:00.0/power/control';
Runtime PM for disk sda;echo 'auto' > '/sys/block/sda/device/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode];echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control';
Runtime PM for port ata1 of PCI device: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode];echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/ata1/power/control';
Runtime PM for port ata2 of PCI device: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode];echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/ata2/power/control';
Runtime PM for port ata3 of PCI device: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode];echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/ata3/power/control';
Runtime PM for port ata6 of PCI device: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode];echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/ata6/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1;echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.0/power/control';
Runtime PM for PCI Device Intel Corporation HM77 Express Chipset LPC Controller;echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller;echo 'auto' > '/sys/bus/pci/devices/0000:00:14.0/power/control';
Runtime PM for PCI Device Intel Corporation 3rd Gen Core processor Graphics Controller;echo 'auto' > '/sys/bus/pci/devices/0000:00:02.0/power/control';
Runtime PM for PCI Device Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller;echo 'auto' > '/sys/bus/pci/devices/0000:05:00.0/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2;echo 'auto' > '/sys/bus/pci/devices/0000:00:1a.0/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2;echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.1/power/control';
Runtime PM for PCI Device Intel Corporation 3rd Gen Core processor DRAM Controller;echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series/C216 Chipset Family SMBus Controller;echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.3/power/control';
Runtime PM for port ata4 of PCI device: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode];echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/ata4/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 4;echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.3/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller;echo 'auto' > '/sys/bus/pci/devices/0000:00:1b.0/power/control';
Runtime PM for port ata5 of PCI device: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode];echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/ata5/power/control';
Runtime PM for PCI Device Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1;echo 'auto' > '/sys/bus/pci/devices/0000:00:16.0/power/control';
Runtime PM for PCI Device Broadcom Inc. and subsidiaries BCM43228 802.11a/b/g/n;echo 'auto' > '/sys/bus/pci/devices/0000:04:00.0/power/control';
____________________________________________________________________
 *  *  *   Untunable Software Issues   *  *  *

Description
I2C Adapter i2c-8 has no runtime power management
I2C Adapter i2c-7 has no runtime power management
____________________________________________________________________
 *  *  *   Optimal Tuned Software Settings   *  *  *

Description
VM writeback timeout
Bluetooth device interface status
NMI watchdog should be turned off
Autosuspend for USB device Integrated Camera [J1DD5S22H]
Autosuspend for USB device xHCI Host Controller [usb4]
Autosuspend for USB device EHCI Host Controller [usb2]
Autosuspend for unknown USB device 1-1 (8087:0024)
Autosuspend for USB device BCM20702A0 [Broadcom Corp]
Autosuspend for USB device EHCI Host Controller [usb1]
Autosuspend for unknown USB device 2-1 (8087:0024)
Autosuspend for USB device xHCI Host Controller [usb3]
Runtime PM for PCI Device NVIDIA Corporation GK208M [GeForce GT 740M]
Runtime PM for PCI Device Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port

____________________________________________________________________
 *  *  *   Wake status of the devices   *  *  *

Description;Script
Wake-on-lan status for device enp5s0;echo 'enabled' > '/sys/class/net/enp5s0/device/power/wakeup';
Wake-on-lan status for device wlp4s0;echo 'enabled' > '/sys/class/net/wlp4s0/device/power/wakeup';
Wake status for USB device usb3;echo 'enabled' > '/sys/bus/usb/devices/usb3/power/wakeup';
Wake status for USB device 2-1;echo 'enabled' > '/sys/bus/usb/devices/2-1/power/wakeup';
Wake status for USB device usb1;echo 'enabled' > '/sys/bus/usb/devices/usb1/power/wakeup';
Wake status for USB device 1-1.3;echo 'enabled' > '/sys/bus/usb/devices/1-1.3/power/wakeup';
Wake status for USB device 1-1;echo 'enabled' > '/sys/bus/usb/devices/1-1/power/wakeup';
Wake status for USB device usb4;echo 'enabled' > '/sys/bus/usb/devices/usb4/power/wakeup';
Wake status for USB device usb2;echo 'enabled' > '/sys/bus/usb/devices/usb2/power/wakeup';
Wake status for USB device 3-3;echo 'enabled' > '/sys/bus/usb/devices/3-3/power/wakeup';

Thanks

I had shutdown my computer while running calibration (my pc is fine but I just wanna know)

I ran powertop --calibrate command and the screen suddenly gone black, I though my computer had crashed so I forced shutdown by holding power button. (my fault I didn't read the wiki well)

My computer is fine now but I just wanna know if there are some side effects. Although I know that changes to /sys directory aren't permanent.

I have rerun calibration again until it became successful to make sure everything is okay.

My Suggestion: Can you add a confirmation request by y yes or n no with a warning that a the screen back light will turn off during measurements before running the command. It will be safer for users.

Cheers.

powertop-2.14: compilation fails with 'undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'

It's using pthread, but it doesn't build/link with -pthread by default. I think it should build out-of-the box without any special user LDFLAGS/CGLAGS.

Build log snip on Fedora rawhide (f35):

libtool: link: g++ -Wall -Wformat -Wshadow -fno-omit-frame-pointer -fstack-protector -I/usr/include/libnl3 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o powertop powertop-devlist.o powertop-display.o powertop-lib.o powertop-main.o calibrate/powertop-calibrate.o cpu/powertop-abstract_cpu.o cpu/powertop-cpu.o cpu/powertop-cpu_core.o cpu/powertop-cpu_linux.o cpu/powertop-cpu_package.o cpu/powertop-cpu_rapl_device.o cpu/powertop-cpudevice.o cpu/powertop-dram_rapl_device.o cpu/powertop-intel_cpus.o cpu/powertop-intel_gpu.o cpu/rapl/powertop-rapl_interface.o devices/powertop-ahci.o devices/powertop-alsa.o devices/powertop-backlight.o devices/powertop-devfreq.o devices/powertop-device.o devices/powertop-gpu_rapl_device.o devices/powertop-i915-gpu.o devices/powertop-network.o devices/powertop-rfkill.o devices/powertop-runtime_pm.o devices/powertop-thinkpad-fan.o devices/powertop-thinkpad-light.o devices/powertop-usb.o measurement/powertop-acpi.o measurement/powertop-extech.o measurement/powertop-measurement.o measurement/powertop-sysfs.o measurement/powertop-opal-sensors.o parameters/powertop-learn.o parameters/powertop-parameters.o parameters/powertop-persistent.o perf/powertop-perf.o perf/powertop-perf_bundle.o process/powertop-do_process.o process/powertop-interrupt.o process/powertop-powerconsumer.o process/powertop-process.o process/powertop-processdevice.o process/powertop-timer.o process/powertop-work.o report/powertop-report-data-html.o report/powertop-report-formatter-base.o report/powertop-report-formatter-csv.o report/powertop-report-formatter-html.o report/powertop-report-maker.o report/powertop-report.o tuning/powertop-bluetooth.o tuning/powertop-ethernet.o tuning/powertop-iw.o tuning/powertop-runtime.o tuning/powertop-tunable.o tuning/powertop-tuning.o tuning/powertop-tuningsysfs.o tuning/powertop-tuningusb.o tuning/powertop-tuningi2c.o tuning/powertop-wifi.o wakeup/powertop-wakeup.o wakeup/powertop-waketab.o wakeup/powertop-wakeup_ethernet.o wakeup/powertop-wakeup_usb.o  -lnl-genl-3 -lnl-3 -lncursesw -lncurses -ltinfo -lpci ../traceevent/.libs/libtraceevnet.a
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/11/libstdc++.so: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
/usr/bin/ld: /usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

In the src/Makefile.am it's using PTHREAD_CFLAGS and PTHREAD_LIBS, but it's probably missing corresponding autotools macro call (ax_pthread). I used the following patch in Fedora downstream and can PR if needed:

--- a/configure.ac
+++ b/configure.ac
@@ -3,6 +3,7 @@
 
 AC_PREREQ([2.69])
 AC_INIT([powertop], [2.14], [[email protected]], [], [https://01.org/powertop])
+AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE([
 	-Wall
 	1.12.2
@@ -37,6 +38,7 @@ AC_PROG_CC
 AC_PROG_INSTALL
 AM_PROG_CC_C_O
 PKG_PROG_PKG_CONFIG
+AX_PTHREAD
 
 # Checks for libraries.
 

Power consumed statistic changes when changing brightness

The line stating ""The power consumed was ...J" goes up and down if the display brightness is changed, which is misleading (my guess is that it is calculated based on running time x current power usage). It should either do the full calculation or be removed.

Remove Android build artifacts

The last update to the Android.mk was 5 years ago. Android 5.0 (Lollipop) released 6 years ago. These artifacts are bit rotting, so let us remove them.

powertop exits at startup with read_msr failure

I'm using Powertop in Fedora 32 on a Lenovo P720 machine. It has 2 physical Intel Xeon Gold 6130 CPUs @ 2.1GHz x 64.

$ sudo powertop
the port is sda
    the port is sdb
        read_msr cpu0 0x630 : Input/output error
$ echo $?
254

build regression: lost -lpthread

Version 2.14 compared to version 2.11 fails to build into RPM on ROSA Linux rosa2021.1:

DEBUG: /usr/bin/x86_64-rosa-linux-gnu-ld: powertop-main.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
DEBUG: /usr/bin/x86_64-rosa-linux-gnu-ld: /lib64/libpthread.so.0: error adding symbols: DSO missing from command line

Adding -lthread (%global ldflags %{ldflags} -lpthread) resolved this problem.
I see that files in m4/ were deleted, there was something about libpthread there.

Unaligned column headers.

This is with PowerTOP v2.11 from Ubuntu, as I could not build from repo source.

When using the curses interface, the column descriptions are not aligned with the columns that they describe.
Resizing the xterm does not fix it.

Screenshot from 2020-11-03 09-50-10

Vim Key-Bindings

Hey I really like this tool but when I first used it, as with most CLI-tools, I went straight for vim-keys. It was easy to use otherwise, but it would be really nice to have a way to use it with vim-keybindings, just a nice QOL addition that I think others might appreciate. Thanks again for creating such an awesome tool!

README: Clarify ondemand requirement

I was reviewing README to know the kernel options I need to enable for running powertop, but I was a bit surprised about ondemand governor requirement. It's a long time since I disabled it in favor of pstate driver. Is README updated? Is ondemand really required even on recent intel processors?

Thanks for the info

powertop crashes when the AC is un-plugged

If I run powertop when the AC is plugged-in, everything's fine. When I un-plug the AC, then powertop crashes and shows:

terminate called after throwing an instance of 'std::ios_base::failure'
what(): basic_filebuf::underflow error reading the file

Please ask if you need more infos.

powertop kills internal keyboard

Tuning the " Autosusped for USB device N-KEY device [ASUSTek Computer Inc.]" breaks my internal keyboard. Just to clarify this is not an external USB keyboard, this is the default one on the laptop. The only way to get it back of course is to reboot

Apart from it being included in auto-tune, the reason I tune this specifically because in the power-est tab it shows this 'device' to consume 12-17W consistently

Some info
Distro: Arch Linux (alternating between kde and dwm)
Laptop: Asus ROG Strix G 731GW (i79750-h, RTX 2070)

Power usage estimate of 4.04 W of display backlight with turned off internal display

On a Dell Latitude E7250 with Debian Sid/unstable with Linux 5.7.6 and PowerTOP 2.11, connecting a monitor over HDMI and disabling the internal screen in GNOME 3.36.4, PowerTOP estimates four Watts of power usage for the display backlight with a utilization of zero percent.

  4.04 W      0,0%                      Device         Display backlight

Shouldn’t that be 0? I looked a little into the backlight code, but there have been no changes since a while.

$ ls -l /sys/class/backlight/
insgesamt 0
lrwxrwxrwx 1 root root 0 28. Jul 13:43 intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight

README.md: Update build-time and run-time requirements

Time to dust off those corners of the README.

On the run-time side, audit and document all requirements, hard (e.g. kconfigs) and soft (e.g. ethtool), necessary for full and proper operation.

Do the same for build-time requirements.

To be done for modern kernels (version >= v5.6, which is latest mainline stable at time of writing).

prefere newer libnl versions

Why is libnl-1 prefered over 2 and that over 3? It should be used the latest version, especially as 1 and 2 are no more maintained.

Segmentation fault in report_display_cpu_cstates for Ryzen CPUs

PowerTOP version 2.13
Kernel: 5.7.9 (Fedora 32)
Hardware: Lenovo T495 (AMD Ryzen 3500U)

Trying to create an HTML report with sudo powertop --html results in the following output:

modprobe cpufreq_stats failedLoaded 421 prior measurements
RAPL device for cpu 0
RAPL device for cpu 0
Devfreq not enabled
glob returned GLOB_ABORTED
Preparing to take measurements
[1]    15086 segmentation fault  sudo powertop --html

The output is identical for a run with --debug --html.

At program start, check for the existence of MSRs, and inform the user if they do not

As it stands, PowerTOP is not smart about reading MSRs-- it just goes for it. A number of issues (#51, #53, #60) would not have resulted in the program aborting if PowerTOP checked for MSRs in the first place.

We can steal, and riff, on this patch with pride:

That Clear Linux patch won't read MSRs when PowerTOP is started with -x. But, PowerTOP should programmatically do the MSR checks.

Objectives:

  • PowerTOP should not crash for blindly reading, and not handling, a non-existent MSR
  • At startup, PowerTOP programmatically checks for the existence of MSRs
  • If any desired MSRs are unavailable, inform the user on stderr and display no data for impacted fields

Question about WakeUp tab

I'd like to use powertop --auto-tune as a systemd service on startup, but it disables a selection in the WakeUp tab that I'd like to keep enabled.

Is there anyway to permanently enable something in the WakeUp tab so that it doesn't get auto-tuned away?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.