summaryrefslogtreecommitdiffstats
path: root/tools/power
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'release' of ↵Linus Torvalds2012-03-302-120/+224
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux Pull ACPI & Power Management changes from Len Brown: - ACPI 5.0 after-ripples, ACPICA/Linux divergence cleanup - cpuidle evolving, more ARM use - thermal sub-system evolving, ditto - assorted other PM bits Fix up conflicts in various cpuidle implementations due to ARM cpuidle cleanups (ARM at91 self-refresh and cpu idle code rewritten into "standby" in asm conflicting with the consolidation of cpuidle time keeping), trivial SH include file context conflict and RCU tracing fixes in generic code. * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (77 commits) ACPI throttling: fix endian bug in acpi_read_throttling_status() Disable MCP limit exceeded messages from Intel IPS driver ACPI video: Don't start video device until its associated input device has been allocated ACPI video: Harden video bus adding. ACPI: Add support for exposing BGRT data ACPI: export acpi_kobj ACPI: Fix logic for removing mappings in 'acpi_unmap' CPER failed to handle generic error records with multiple sections ACPI: Clean redundant codes in scan.c ACPI: Fix unprotected smp_processor_id() in acpi_processor_cst_has_changed() ACPI: consistently use should_use_kmap() PNPACPI: Fix device ref leaking in acpi_pnp_match ACPI: Fix use-after-free in acpi_map_lsapic ACPI: processor_driver: add missing kfree ACPI, APEI: Fix incorrect APEI register bit width check and usage Update documentation for parameter *notrigger* in einj.txt ACPI, APEI, EINJ, new parameter to control trigger action ACPI, APEI, EINJ, limit the range of einj_param ACPI, APEI, Fix ERST header length check cpuidle: power_usage should be declared signed integer ...
| * tools turbostat: harden against cpu online/offlineLen Brown2012-03-291-54/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes users have turbostat running in interval mode when they take processors offline/online. Previously, turbostat would survive, but not gracefully. Tighten up the error checking so turbostat notices changesn sooner, and print just 1 line on change: turbostat: re-initialized with num_cpus %d Signed-off-by: Len Brown <len.brown@intel.com>
| * tools turbostat: reduce measurement overhead due to IPIsLen Brown2012-03-291-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | turbostat uses /dev/cpu/*/msr interface to read MSRs. For modern systems, it reads 10 MSR/CPU. This can be observed as 10 "Function Call Interrupts" per CPU per sample added to /proc/interrupts. This overhead is measurable on large idle systems, and as Yoquan Song pointed out, it can even trick cpuidle into thinking the system is busy. Here turbostat re-schedules itself in-turn to each CPU so that its MSR reads will always be local. This replaces the 10 "Function Call Interrupts" with a single "Rescheduling interrupt" per sample per CPU. On an idle 32-CPU system, this shifts some residency from the shallow c1 state to the deeper c7 state: # ./turbostat.old -s %c0 GHz TSC %c1 %c3 %c6 %c7 %pc2 %pc3 %pc6 %pc7 0.27 1.29 2.29 0.95 0.02 0.00 98.77 20.23 0.00 77.41 0.00 0.25 1.24 2.29 0.98 0.02 0.00 98.75 20.34 0.03 77.74 0.00 0.27 1.22 2.29 0.54 0.00 0.00 99.18 20.64 0.00 77.70 0.00 0.26 1.22 2.29 1.22 0.00 0.00 98.52 20.22 0.00 77.74 0.00 0.26 1.38 2.29 0.78 0.02 0.00 98.95 20.51 0.05 77.56 0.00 ^C i# ./turbostat.new -s %c0 GHz TSC %c1 %c3 %c6 %c7 %pc2 %pc3 %pc6 %pc7 0.27 1.20 2.29 0.24 0.01 0.00 99.49 20.58 0.00 78.20 0.00 0.27 1.22 2.29 0.25 0.00 0.00 99.48 20.79 0.00 77.85 0.00 0.27 1.20 2.29 0.25 0.02 0.00 99.46 20.71 0.03 77.89 0.00 0.28 1.26 2.29 0.25 0.01 0.00 99.46 20.89 0.02 77.67 0.00 0.27 1.20 2.29 0.24 0.01 0.00 99.48 20.65 0.00 78.04 0.00 cc: Youquan Song <youquan.song@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
| * tools turbostat: add summary optionLen Brown2012-03-292-69/+120
| | | | | | | | | | | | | | | | | | turbostat -s cuts down on the amount of output, per user request. also treak some output whitespace and the man page. Signed-off-by: Len Brown <len.brown@intel.com>
* | cpupower tools: add install target to the debug tools' makefilesFranck Bui-Huu2012-03-032-2/+24
| | | | | | | | | | Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower tools: allow to build debug tools in a separate directory tooFranck Bui-Huu2012-03-032-14/+26
| | | | | | | | | | Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Fix broken mask valuesThomas Renninger2012-03-031-2/+2
| | | | | | | | | | | | Signed-off-by: Thomas Renninger <trenn@suse.de> Tested-by: Dave Jones <davej@redhat.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower tool: allow to build in a separate directoryFranck Bui-Huu2012-03-032-39/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows cpupower tool to generate its output files in a seperate directory. This is now possible by passing the 'O=<path>' to the command line. This can be usefull for a normal user if the kernel source code is located in a read only location. This is patch stole some bits of the perf makefile. [linux@dominikbrodowski.net: fix commit message] Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower tool: makefile: simplify the recipe used to generate cpupower.pot ↵Franck Bui-Huu2012-03-031-3/+1
| | | | | | | | | | | | | | | | | | | | | | target Use the '-p' and '-o' switches to specify the pathname of the output file to xgettext(1). This avoids to move manually the output file if xgettext(1) succeeds. Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower tool: remove use of undefined variables from the clean target of ↵Franck Bui-Huu2012-03-031-2/+0
| | | | | | | | | | | | | | | | | | | | the top makefile UTIL_BINS and IDLE_OBJS variables are not defined at all, so there's no need to remove their content from the 'clean' target. Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Fix linking with --as-neededOzan Çağlayan2012-03-031-1/+1
| | | | | | | | | | | | | | | | Fix linking order to avoid undefined reference errors when using --as-needed linker flag. Signed-off-by: Ozan Çağlayan <ozan@pardus.org.tr> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Remove unneeded code and by that fix a memleakThomas Renninger2012-03-031-7/+0
| | | | | | | | | | | | | | | | | | | | | | Looks like some not needed debug code slipped in. Also this code: tmp = sysfs_get_idlestate_name(cpu, idlestates - 1); performs a strdup and the mem was not freed again. -> delete it. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Fix number of idle statesThomas Renninger2012-03-031-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The number of idle states was wrong. The POLL idle state (on X86) was missed out: Number of idle states: 4 Available idle states: C1-NHM C3-NHM C6-NHM While the POLL is not a real idle state, its statistics should still be shown. It's now also explained in a detailed manpage. This should fix a bug of missing the first idle state on other archs. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Unify cpupower-frequency-* manpagesThomas Renninger2012-03-032-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | cpupower-frequency-* manpages slightly differed from the others. - Use uppercase letters in the title - Show cpupower Manual in the header - Remove Mattia from left down corner of the manpage, he is already listed as author - Remove --help, prints this message -> not needed Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Add cpupower-idle-info manpageThomas Renninger2012-03-031-0/+90
| | | | | | | | | | | | | | | | | | The last missing manpage for cpupower tools. More info about other architecture's sleep state specialities would be great. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: AMD fam14h/Ontario monitor can also be used by fam12h cpusThomas Renninger2012-03-032-9/+9
| | | | | | | | | | | | | | | | | | The name of the monitor is updated at runtime to the name of the CPU type. Signed-off-by: Thomas Renninger <trenn@suse.de> CC: Andreas Herrmann <herrmann.der.user@googlemail.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Better interface for accessing AMD pci registersThomas Renninger2012-03-034-23/+32
|/ | | | | | | | | | | | | | | AMD's BKDG (Bios and Kernel Developers Guide) talks in the CPU spec of their CPU families about PCI registers defined by "device" (slot) and func(tion). Assuming that CPU specific configuration PCI devices are always on domain and bus zero a pci_slot_func_init() func which gets the slot and func of the desired PCI device passed looks like the most convenient way. This also obsoletes the PCI device id maintenance. Signed-off-by: Thomas Renninger <trenn@suse.de> CC: Andreas Herrmann <herrmann.der.user@googlemail.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* Merge branch 'release' of ↵Linus Torvalds2012-01-181-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux This includes initial support for the recently published ACPI 5.0 spec. In particular, support for the "hardware-reduced" bit that eliminates the dependency on legacy hardware. APEI has patches resulting from testing on real hardware. Plus other random fixes. * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (52 commits) acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec intel_idle: Split up and provide per CPU initialization func ACPI processor: Remove unneeded variable passed by acpi_processor_hotadd_init V2 ACPI processor: Remove unneeded cpuidle_unregister_driver call intel idle: Make idle driver more robust intel_idle: Fix a cast to pointer from integer of different size warning in intel_idle ACPI: kernel-parameters.txt : Add intel_idle.max_cstate intel_idle: remove redundant local_irq_disable() call ACPI processor: Fix error path, also remove sysdev link ACPI: processor: fix acpi_get_cpuid for UP processor intel_idle: fix API misuse ACPI APEI: Convert atomicio routines ACPI: Export interfaces for ioremapping/iounmapping ACPI registers ACPI: Fix possible alignment issues with GAS 'address' references ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64) ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64) ACPI: Store SRAT table revision ACPI, APEI, Resolve false conflict between ACPI NVS and APEI ACPI, Record ACPI NVS regions ACPI, APEI, EINJ, Refine the fix of resource conflict ...
| * Merge branches 'einj', 'intel_idle', 'misc', 'srat' and 'turbostat-ivb' into ↵Len Brown2012-01-181-0/+2
| |\ | | | | | | | | | release
| | * tools turbostat: recognize and run properly on IVBLen Brown2011-11-181-0/+2
| | | | | | | | | | | | Signed-off-by: Len Brown <len.brown@intel.com>
* | | tools/power turbostat: update fields in manpageArun Thomas2011-12-151-4/+4
|/ / | | | | | | | | | | | | Field names were shortened: "pkg" is now "pk", "core" is now "cr" Signed-off-by: Arun Thomas <arun.thomas@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* | Merge branches 'acpi', 'idle', 'mrst-pmu' and 'pm-tools' into nextLen Brown2011-11-061-13/+15
|\ \ | |/ |/|
| * tools/power turbostat: less verbose debuggingLen Brown2011-07-031-13/+15
| | | | | | | | | | | | dump only the counters which are active Signed-off-by: Len Brown <len.brown@intel.com>
* | cpupower: use man(1) when calling "cpupower help subcommand"Dominik Brodowski2011-08-1911-228/+86
| | | | | | | | | | | | | | Instead of printing something non-formatted to stdout, call man(1) to show the man page for the proper subcommand. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: make NLS truly optionalDominik Brodowski2011-08-192-0/+10
| | | | | | | | | | | | | | | | Loosely based on a patch for cpufrequtils, submittted by Sergey Dryabzhinsky <sergey.dryabzhinsky@gmail.com> and signed-off-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: fix Makefile typoDave Jones2011-08-191-2/+2
| | | | | | | | | | Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Make monitor command -c/--cpu awareThomas Renninger2011-08-151-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows for example: cpupower -c 2-4,6 monitor -m Mperf |Mperf PKG |CORE|CPU | C0 | Cx | Freq 0| 8| 4| 2.42| 97.58| 1353 0| 16| 2| 14.38| 85.62| 1928 0| 24| 6| 1.76| 98.24| 1442 1| 16| 3| 15.53| 84.47| 1650 CPUs always get resorted for package, core then cpu id if it could get read out (or however you name these topology levels...). Still this is a nice way to keep the overview if a test binary is bound to a specific CPU or if one wants to show all CPUs inside a package or similar. Still missing: Do not measure not available cores to reduce the overhead and achieve better results. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Better detect offlined CPUsThomas Renninger2011-08-155-4/+66
| | | | | | | | | | | | | | | | | | | | | | | | Before, checking for offlined CPUs was done dirty and it was checked whether topology parsing returned -1 values. But this is a valid case on a Xen (and possibly other) kernels. Do proper online/offline checking, also take CONFIG_HOTPLUG_CPU option into account (no /sys/devices/../cpuX/online file). Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Do not show an empty Idle_Stats monitor if no idle driver is availableThomas Renninger2011-08-151-1/+1
| | | | | | | | | | | | | | | | | | By taking error values of: sysfs_get_idlestate_count(..); into account. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: mperf monitor - Use TSC to calculate max frequency if possibleThomas Renninger2011-08-152-48/+131
| | | | | | | | | | | | | | | | | | Which makes the implementation independent from cpufreq drivers. Therefore this would also work on a Xen kernel where the hypervisor is doing frequency switching and idle entering. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: avoid using symlinksAmerigo Wang2011-08-153-6/+4
| | | | | | | | | | | | | | Reference the source directly, don't create symlinks. Signed-off-by: WANG Cong <amwang@redhat.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | Merge branch 'tools-release' of ↵Linus Torvalds2011-08-022-26/+25
|\ \ | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 * 'tools-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6: tools/power turbostat: fit output into 80 columns on snb-ep tools/power x86_energy_perf_policy: fix print of uninitialized string
| * | tools/power turbostat: fit output into 80 columns on snb-epLen Brown2011-08-021-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduce columns for package number to 1. If you can afford more than 9 packages, you can also afford a terminal with more than 80 columns:-) Also shave a column also off the package C-states Signed-off-by: Len Brown <len.brown@intel.com>
| * | tools/power x86_energy_perf_policy: fix print of uninitialized stringLen Brown2011-07-151-3/+2
| |/ | | | | | | | | | | | | Looks like I was going to stick the brand string in the verbose ouput, but didn't get around to it. Signed-off-by: Len Brown <len.brown@intel.com>
* | cpupower: Do detect IDA (opportunistic processor performance) via cpuidThomas Renninger2011-07-294-41/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IA32-Intel Devel guide Volume 3A - 14.3.2.1 ------------------------------------------- ... Opportunistic processor performance operation can be disabled by setting bit 38 of IA32_MISC_ENABLES. This mechanism is intended for BIOS only. If IA32_MISC_ENABLES[38] is set, CPUID.06H:EAX[1] will return 0. Better detect things via cpuid, this cleans up the code a bit and the MSR parts were not working correctly anyway. Signed-off-by: Thomas Renninger <trenn@suse.de> CC: lenb@kernel.org CC: linux@dominikbrodowski.net CC: cpufreq@vger.kernel.org Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Show Intel turbo ratio support via ./cpupower frequency-infoThomas Renninger2011-07-294-17/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the last piece missing from turbostat (if called with -v). It shows on Intel machines supporting Turbo Boost how many cores have to be active/idle to enter which boost mode (frequency). Whether the HW really enters these boost modes can be verified via ./cpupower monitor. Signed-off-by: Thomas Renninger <trenn@suse.de> CC: lenb@kernel.org CC: linux@dominikbrodowski.net CC: cpufreq@vger.kernel.org Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: increase MAX_LINE_LENRoman Vasiyarov2011-07-291-1/+1
| | | | | | | | | | | | | | | | larger sysfs data (>255 bytes) was truncated and thus used improperly [linux@dominikbrodowski.net: adapted to cpupowerutils] Signed-off-by: Roman Vasiyarov <rvasiyarov@gmail.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupower: Rename package from cpupowerutils to cpupowerThomas Renninger2011-07-291-6/+6
| | | | | | | | | | Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: Rename: libcpufreq->libcpupowerThomas Renninger2011-07-293-18/+17
| | | | | | | | | | | | [linux@dominikbrodowski.net: fix .gitignore] Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: use kernel version-derived version stringDominik Brodowski2011-07-292-7/+41
| | | | | | | | | | | | | | | | | | | | As cpupowerutils is intended to be included into the kernel sources, use the kernel versioning instead of a custom version. The script utils/version-gen.sh is largely based on the script already found in tools/perf/util/PERF-VERSION-GEN . Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: utils - ConfigStyle bugfixesDominik Brodowski2011-07-296-108/+122
| | | | | | | | Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: helpers - ConfigStyle bugfixesDominik Brodowski2011-07-299-86/+100
| | | | | | | | Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: idle_monitor - ConfigStyle bugfixesDominik Brodowski2011-07-296-115/+128
| | | | | | | | Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: lib - ConfigStyle bugfixesDominik Brodowski2011-07-294-172/+209
| | | | | | | | Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: bench - ConfigStyle bugfixesDominik Brodowski2011-07-298-58/+75
| | | | | | | | Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: do not update po files on each and every compileDominik Brodowski2011-07-291-7/+16
| | | | | | | | Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: remove ccdv, use kernel quiet/verbose mechanismDominik Brodowski2011-07-294-411/+24
| | | | | | | | | | | | | | Use the quiet/verbose mechanism found in kernel tools, without relying on the special tool "ccdv" Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils: use COPYING, CREDITS from top-level directoryDominik Brodowski2011-07-292-358/+0
| | | | | | | | Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | cpupowerutils - cpufrequtils extended with quite some featuresDominik Brodowski2011-07-2972-0/+14417
|/ | | | | | | | | | | | | | | | | | | | | CPU power consumption vs performance tuning is no longer limited to CPU frequency switching anymore: deep sleep states, traditional dynamic frequency scaling and hidden turbo/boost frequencies are tied close together and depend on each other. The first two exist on different architectures like PPC, Itanium and ARM, the latter (so far) only on X86. On X86 the APU (CPU+GPU) will only run most efficiently if CPU and GPU has proper power management in place. Users and Developers want to have *one* tool to get an overview what their system supports and to monitor and debug CPU power management in detail. The tool should compile and work on as many architectures as possible. Once this tool stabilizes a bit, it is intended to replace the Intel-specific tools in tools/power/x86 Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* Merge branch 'master' into for-nextJiri Kosina2011-04-261-1/+1
|\ | | | | | | | | Fast-forwarded to current state of Linus' tree as there are patches to be applied for files that didn't exist on the old branch.
OpenPOWER on IntegriCloud