Powertop is a great tool. Is does however have some disadvantages:
- ncurses GUI
- You have to run it as root
- It gives you hardcore suggestions that you have to do manually, which in turn disable bits of the desktop
- You can only run one instance of powertop at a time, else you get crazy readings
- There’s no shared library giving access to the data
- It’s not extensible, so you can’t do much with the data
Now, it turns out the actual data processing code of powertop is pretty easy, sampling /proc/interrupts and /proc/timer_stats every few seconds and throwing away interrupts that are defered and that sort of thing.
In a couple of hundred lines of C, I’ve added this support to DeviceKit-power on a new DBus interface, and added a trivial GObject helper for applications to use.
Long term I want to get this functionality in gnome-system-monitor (it’s querying a simple DBus interface), as I think this data better fits there. gnome-power-statistics is just a handy module that already depends on DeviceKit-power.
As usual, comments and suggestions welcome.