Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28d9bfc3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'perf-core-for-linus' of...

Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (146 commits)
  tools, perf: Documentation for the power events API
  perf: Add calls to suspend trace point
  perf script: Make some lists static
  perf script: Use the default lost event handler
  perf session: Warn about errors when processing pipe events too
  perf tools: Fix perf_event.h header usage
  perf test: Clarify some error reports in the open syscall test
  x86, NMI: Add touch_nmi_watchdog to io_check_error delay
  x86: Avoid calling arch_trigger_all_cpu_backtrace() at the same time
  x86: Only call smp_processor_id in non-preempt cases
  perf timechart: Adjust perf timechart to the new power events
  perf: Clean up power events by introducing new, more generic ones
  perf: Do not export power_frequency, but power_start event
  perf test: Add test for counting open syscalls
  perf evsel: Auto allocate resources needed for some methods
  perf evsel: Use {cpu,thread}_map to shorten list of parameters
  perf tools: Refactor all_tids to hold nr and the map
  perf tools: Refactor cpumap to hold nr and the map
  perf evsel: Introduce per cpu and per thread open helpers
  perf evsel: Steal the counter reading routines from stat
  ...
parents f3b0cfa9 4b95f135
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -2365,8 +2365,6 @@ E: acme@redhat.com
W: http://oops.ghostprotocols.net:81/blog/
P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD  841A B6AB 4681 9224 DF01
D: IPX, LLC, DCCP, cyc2x, wl3501_cs, net/ hacks
S: R. Brasílio Itiberê, 4270/1010 - Água Verde
S: 80240-060 - Curitiba - Paraná
S: Brazil

N: Karsten Merker
+1 −9
Original line number Diff line number Diff line
@@ -1579,20 +1579,12 @@ and is between 256 and 4096 characters. It is defined in the file

	nmi_watchdog=	[KNL,BUGS=X86] Debugging features for SMP kernels
			Format: [panic,][num]
			Valid num: 0,1,2
			Valid num: 0
			0 - turn nmi_watchdog off
			1 - use the IO-APIC timer for the NMI watchdog
			2 - use the local APIC for the NMI watchdog using
			a performance counter. Note: This will use one
			performance counter and the local APIC's performance
			vector.
			When panic is specified, panic when an NMI watchdog
			timeout occurs.
			This is useful when you use a panic=... timeout and
			need the box quickly up again.
			Instead of 1 and 2 it is possible to use the following
			symbolic names: lapic and ioapic
			Example: nmi_watchdog=2 or nmi_watchdog=panic,lapic

	netpoll.carrier_timeout=
			[NET] Specifies amount of time (in seconds) that
+90 −0
Original line number Diff line number Diff line

			Subsystem Trace Points: power

The power tracing system captures events related to power transitions
within the kernel. Broadly speaking there are three major subheadings:

  o Power state switch which reports events related to suspend (S-states),
     cpuidle (C-states) and cpufreq (P-states)
  o System clock related changes
  o Power domains related changes and transitions

This document describes what each of the tracepoints is and why they
might be useful.

Cf. include/trace/events/power.h for the events definitions.

1. Power state switch events
============================

1.1 New trace API
-----------------

A 'cpu' event class gathers the CPU-related events: cpuidle and
cpufreq.

cpu_idle		"state=%lu cpu_id=%lu"
cpu_frequency		"state=%lu cpu_id=%lu"

A suspend event is used to indicate the system going in and out of the
suspend mode:

machine_suspend		"state=%lu"


Note: the value of '-1' or '4294967295' for state means an exit from the current state,
i.e. trace_cpu_idle(4, smp_processor_id()) means that the system
enters the idle state 4, while trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id())
means that the system exits the previous idle state.

The event which has 'state=4294967295' in the trace is very important to the user
space tools which are using it to detect the end of the current state, and so to
correctly draw the states diagrams and to calculate accurate statistics etc.

1.2 DEPRECATED trace API
------------------------

A new Kconfig option CONFIG_EVENT_POWER_TRACING_DEPRECATED with the default value of
'y' has been created. This allows the legacy trace power API to be used conjointly
with the new trace API.
The Kconfig option, the old trace API (in include/trace/events/power.h) and the
old trace points will disappear in a future release (namely 2.6.41).

power_start		"type=%lu state=%lu cpu_id=%lu"
power_frequency		"type=%lu state=%lu cpu_id=%lu"
power_end		"cpu_id=%lu"

The 'type' parameter takes one of those macros:
 . POWER_NONE	= 0,
 . POWER_CSTATE	= 1,	/* C-State */
 . POWER_PSTATE	= 2,	/* Fequency change or DVFS */

The 'state' parameter is set depending on the type:
 . Target C-state for type=POWER_CSTATE,
 . Target frequency for type=POWER_PSTATE,

power_end is used to indicate the exit of a state, corresponding to the latest
power_start event.

2. Clocks events
================
The clock events are used for clock enable/disable and for
clock rate change.

clock_enable		"%s state=%lu cpu_id=%lu"
clock_disable		"%s state=%lu cpu_id=%lu"
clock_set_rate		"%s state=%lu cpu_id=%lu"

The first parameter gives the clock name (e.g. "gpio1_iclk").
The second parameter is '1' for enable, '0' for disable, the target
clock rate for set_rate.

3. Power domains events
=======================
The power domain events are used for power domains transitions

power_domain_target	"%s state=%lu cpu_id=%lu"

The first parameter gives the power domain name (e.g. "mpu_pwrdm").
The second parameter is the power domain target state.
+1 −1
Original line number Diff line number Diff line
@@ -4627,7 +4627,7 @@ PERFORMANCE EVENTS SUBSYSTEM
M:	Peter Zijlstra <a.p.zijlstra@chello.nl>
M:	Paul Mackerras <paulus@samba.org>
M:	Ingo Molnar <mingo@elte.hu>
M:	Arnaldo Carvalho de Melo <acme@redhat.com>
M:	Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
S:	Supported
F:	kernel/perf_event*.c
F:	include/linux/perf_event.h
+0 −6
Original line number Diff line number Diff line
#ifndef __ASM_ALPHA_PERF_EVENT_H
#define __ASM_ALPHA_PERF_EVENT_H

#ifdef CONFIG_PERF_EVENTS
extern void init_hw_perf_events(void);
#else
static inline void init_hw_perf_events(void)    { }
#endif

#endif /* __ASM_ALPHA_PERF_EVENT_H */
Loading