forked from torvalds/linux
-
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 branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/…
…linux/kernel/git/tip/tip Pull more perf updates from Ingo Molnar: "The only kernel change is comment typo fixes. The rest is mostly tooling fixes, but also new vendor event additions and updates, a bigger libperf/libtraceevent library and a header files reorganization that came in a bit late" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (108 commits) perf unwind: Fix libunwind build failure on i386 systems perf parser: Remove needless include directives perf build: Add detection of java-11-openjdk-devel package perf jvmti: Include JVMTI support for s390 perf vendor events: Remove P8 HW events which are not supported perf evlist: Fix access of freed id arrays perf stat: Fix free memory access / memory leaks in metrics perf tools: Replace needless mmap.h with what is needed, event.h perf evsel: Move config terms to a separate header perf evlist: Remove unused perf_evlist__fprintf() method perf evsel: Introduce evsel_fprintf.h perf evsel: Remove need for symbol_conf in evsel_fprintf.c perf copyfile: Move copyfile routines to separate files libperf: Add perf_evlist__poll() function libperf: Add perf_evlist__add_pollfd() function libperf: Add perf_evlist__alloc_pollfd() function libperf: Add libperf_init() call to the tests libperf: Merge libperf_set_print() into libperf_init() libperf: Add libperf dependency for tests targets libperf: Use sys/types.h to get ssize_t, not unistd.h ...
- Loading branch information
Showing
268 changed files
with
4,801 additions
and
3,617 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
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
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
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* <[email protected]>, author of *libtraceevent*. | ||
*Tzvetomir Stoyanov* <[email protected]>, author of this man page. | ||
-- | ||
REPORTING BUGS | ||
-------------- | ||
Report bugs to <[email protected]> | ||
|
||
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
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* <[email protected]>, author of *libtraceevent*. | ||
*Tzvetomir Stoyanov* <[email protected]>, author of this man page. | ||
-- | ||
REPORTING BUGS | ||
-------------- | ||
Report bugs to <[email protected]> | ||
|
||
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 |
Oops, something went wrong.