-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'perf-core-for-mingo-5.5-20190925' of git://git.kernel.org/…
…pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: perf record: Stephane Eranian: - Fix priv level with branch sampling for paranoid=2, i.e. the kernel checks if perf_event_attr_attr.exclude_hv is set in addition to .exclude_kernel, so reset both to zero. Arnaldo Carvalho de Melo: - Don't warn about not being able to read kernel maps (kallsyms, etc) when kernel samples aren't being collected. perf list: Kim Phillips: - Allow plurals for metric, metricgroup., i.e.: $ perf list metrics was showing nothing, which is very confusing, make it work like: $ perf stat metric perf stat: Andi Kleen: - Free memory access/leaks detected via valgrind, related to metrics. Libraries: libperf: Jiri Olsa: - Move more stuff from tools/perf, this time a first stab at moving perf_mmap methods. libtracevent: Steven Rostedt (VMware): - Round up in tep_print_event() time precision. Tzvetomir Stoyanov (VMware): - Man pages for event print and related and plugins APIs. - Move traceevent plugins in its own subdirectory. Feature detection: Thomas Richter: - Add detection of java-11-openjdk-devel package, in addition to the older versions supported. Architecture specific: S/390: Thomas Richter (2): - Include JVMTI support for s390 Vendor events: AMD: Kim Phillips: - Add L3 cache events for Family 17h. - Remove redundant '['. PowerPC: Mamatha Inamdar: - Remove P8 HW events which are not supported. Cleanups: Arnaldo Carvalho de Melo: - Remove needless headers, add needed ones, move things around to reduce the headers dependency tree, speeding up builds by not doing needless compiles when unrelated stuff gets changed. - Ditch unused code that was dragging headers. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ingo Molnar <mingo@kernel.org>
- Loading branch information
Showing
128 changed files
with
1,941 additions
and
1,321 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
130 changes: 130 additions & 0 deletions
130
tools/lib/traceevent/Documentation/libtraceevent-event_print.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
libtraceevent(3) | ||
================ | ||
|
||
NAME | ||
---- | ||
tep_print_event - Writes event information into a trace sequence. | ||
|
||
SYNOPSIS | ||
-------- | ||
[verse] | ||
-- | ||
*#include <event-parse.h>* | ||
*#include <trace-seq.h>* | ||
|
||
void *tep_print_event*(struct tep_handle pass:[*]_tep_, struct trace_seqpass:[*]_s_, struct tep_record pass:[*]_record_, const char pass:[*]_fmt_, _..._) | ||
-- | ||
|
||
DESCRIPTION | ||
----------- | ||
|
||
The _tep_print_event()_ function parses the event information of the given | ||
_record_ and writes it into the trace sequence _s_, according to the format | ||
string _fmt_. The desired information is specified after the format string. | ||
The _fmt_ is printf-like format string, following arguments are supported: | ||
[verse] | ||
-- | ||
TEP_PRINT_PID, "%d" - PID of the event. | ||
TEP_PRINT_CPU, "%d" - Event CPU. | ||
TEP_PRINT_COMM, "%s" - Event command string. | ||
TEP_PRINT_NAME, "%s" - Event name. | ||
TEP_PRINT_LATENCY, "%s" - Latency of the event. It prints 4 or more | ||
fields - interrupt state, scheduling state, | ||
current context, and preemption count. | ||
Field 1 is the interrupt enabled state: | ||
d : Interrupts are disabled | ||
. : Interrupts are enabled | ||
X : The architecture does not support this | ||
information | ||
Field 2 is the "need resched" state. | ||
N : The task is set to call the scheduler when | ||
possible, as another higher priority task | ||
may need to be scheduled in. | ||
. : The task is not set to call the scheduler. | ||
Field 3 is the context state. | ||
. : Normal context | ||
s : Soft interrupt context | ||
h : Hard interrupt context | ||
H : Hard interrupt context which triggered | ||
during soft interrupt context. | ||
z : NMI context | ||
Z : NMI context which triggered during hard | ||
interrupt context | ||
Field 4 is the preemption count. | ||
. : The preempt count is zero. | ||
On preemptible kernels (where the task can be scheduled | ||
out in arbitrary locations while in kernel context), the | ||
preempt count, when non zero, will prevent the kernel | ||
from scheduling out the current task. The preempt count | ||
number is displayed when it is not zero. | ||
Depending on the kernel, it may show other fields | ||
(lock depth, or migration disabled, which are unique to | ||
specialized kernels). | ||
TEP_PRINT_TIME, %d - event time stamp. A divisor and precision can be | ||
specified as part of this format string: | ||
"%precision.divisord". Example: | ||
"%3.1000d" - divide the time by 1000 and print the first | ||
3 digits before the dot. Thus, the time stamp | ||
"123456000" will be printed as "123.456" | ||
TEP_PRINT_INFO, "%s" - event information. | ||
TEP_PRINT_INFO_RAW, "%s" - event information, in raw format. | ||
|
||
-- | ||
EXAMPLE | ||
------- | ||
[source,c] | ||
-- | ||
#include <event-parse.h> | ||
#include <trace-seq.h> | ||
... | ||
struct trace_seq seq; | ||
trace_seq_init(&seq); | ||
struct tep_handle *tep = tep_alloc(); | ||
... | ||
void print_my_event(struct tep_record *record) | ||
{ | ||
trace_seq_reset(&seq); | ||
tep_print_event(tep, s, record, "%16s-%-5d [%03d] %s %6.1000d %s %s", | ||
TEP_PRINT_COMM, TEP_PRINT_PID, TEP_PRINT_CPU, | ||
TEP_PRINT_LATENCY, TEP_PRINT_TIME, TEP_PRINT_NAME, | ||
TEP_PRINT_INFO); | ||
} | ||
... | ||
-- | ||
|
||
FILES | ||
----- | ||
[verse] | ||
-- | ||
*event-parse.h* | ||
Header file to include in order to have access to the library APIs. | ||
*trace-seq.h* | ||
Header file to include in order to have access to trace sequences related APIs. | ||
Trace sequences are used to allow a function to call several other functions | ||
to create a string of data to use. | ||
*-ltraceevent* | ||
Linker switch to add when building a program that uses the library. | ||
-- | ||
|
||
SEE ALSO | ||
-------- | ||
_libtraceevent(3)_, _trace-cmd(1)_ | ||
|
||
AUTHOR | ||
------ | ||
[verse] | ||
-- | ||
*Steven Rostedt* <rostedt@goodmis.org>, author of *libtraceevent*. | ||
*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page. | ||
-- | ||
REPORTING BUGS | ||
-------------- | ||
Report bugs to <linux-trace-devel@vger.kernel.org> | ||
|
||
LICENSE | ||
------- | ||
libtraceevent is Free Software licensed under the GNU LGPL 2.1 | ||
|
||
RESOURCES | ||
--------- | ||
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
99 changes: 99 additions & 0 deletions
99
tools/lib/traceevent/Documentation/libtraceevent-plugins.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
libtraceevent(3) | ||
================ | ||
|
||
NAME | ||
---- | ||
tep_load_plugins, tep_unload_plugins - Load / unload traceevent plugins. | ||
|
||
SYNOPSIS | ||
-------- | ||
[verse] | ||
-- | ||
*#include <event-parse.h>* | ||
|
||
struct tep_plugin_list pass:[*]*tep_load_plugins*(struct tep_handle pass:[*]_tep_); | ||
void *tep_unload_plugins*(struct tep_plugin_list pass:[*]_plugin_list_, struct tep_handle pass:[*]_tep_); | ||
-- | ||
|
||
DESCRIPTION | ||
----------- | ||
The _tep_load_plugins()_ function loads all plugins, located in the plugin | ||
directories. The _tep_ argument is trace event parser context. | ||
The plugin directories are : | ||
[verse] | ||
-- | ||
- System's plugin directory, defined at the library compile time. It | ||
depends on the library installation prefix and usually is | ||
_(install_preffix)/lib/traceevent/plugins_ | ||
- Directory, defined by the environment variable _TRACEEVENT_PLUGIN_DIR_ | ||
- User's plugin directory, located at _~/.local/lib/traceevent/plugins_ | ||
-- | ||
Loading of plugins can be controlled by the _tep_flags_, using the | ||
_tep_set_flag()_ API: | ||
[verse] | ||
-- | ||
_TEP_DISABLE_SYS_PLUGINS_ - do not load plugins, located in | ||
the system's plugin directory. | ||
_TEP_DISABLE_PLUGINS_ - do not load any plugins. | ||
-- | ||
The _tep_set_flag()_ API needs to be called before _tep_load_plugins()_, if | ||
loading of all plugins is not the desired case. | ||
|
||
The _tep_unload_plugins()_ function unloads the plugins, previously loaded by | ||
_tep_load_plugins()_. The _tep_ argument is trace event parser context. The | ||
_plugin_list_ is the list of loaded plugins, returned by | ||
the _tep_load_plugins()_ function. | ||
|
||
RETURN VALUE | ||
------------ | ||
The _tep_load_plugins()_ function returns a list of successfully loaded plugins, | ||
or NULL in case no plugins are loaded. | ||
|
||
EXAMPLE | ||
------- | ||
[source,c] | ||
-- | ||
#include <event-parse.h> | ||
... | ||
struct tep_handle *tep = tep_alloc(); | ||
... | ||
struct tep_plugin_list *plugins = tep_load_plugins(tep); | ||
if (plugins == NULL) { | ||
/* no plugins are loaded */ | ||
} | ||
... | ||
tep_unload_plugins(plugins, tep); | ||
-- | ||
|
||
FILES | ||
----- | ||
[verse] | ||
-- | ||
*event-parse.h* | ||
Header file to include in order to have access to the library APIs. | ||
*-ltraceevent* | ||
Linker switch to add when building a program that uses the library. | ||
-- | ||
|
||
SEE ALSO | ||
-------- | ||
_libtraceevent(3)_, _trace-cmd(1)_, _tep_set_flag(3)_ | ||
|
||
AUTHOR | ||
------ | ||
[verse] | ||
-- | ||
*Steven Rostedt* <rostedt@goodmis.org>, author of *libtraceevent*. | ||
*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page. | ||
-- | ||
REPORTING BUGS | ||
-------------- | ||
Report bugs to <linux-trace-devel@vger.kernel.org> | ||
|
||
LICENSE | ||
------- | ||
libtraceevent is Free Software licensed under the GNU LGPL 2.1 | ||
|
||
RESOURCES | ||
--------- | ||
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.