Tzvetomir Stoyanov
bb3dd7e7c4
tools lib traceevent, perf tools: Move struct tep_handler definition in a local header file
...
As traceevent is going to be transferred into a proper library,
its local data should be protected from the library users.
This patch encapsulates struct tep_handler into a local header,
not visible outside of the library. It implements also a bunch
of new APIs, which library users can use to access tep_handler members.
Signed-off-by: Tzvetomir Stoyanov <tstoyanov@vmware.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: linux trace devel <linux-trace-devel@vger.kernel.org >
Cc: tzvetomir stoyanov <tstoyanov@vmware.com >
Link: http://lkml.kernel.org/r/20181005122225.522155df@gandalf.local.home
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-10-08 15:05:37 -03:00
Sanskriti Sharma
9c8a182e5a
perf tools: Free 'printk' string in parse_ftrace_printk()
...
parse_ftrace_printk() tokenizes and parses a line, calling strdup() each
iteration. Add code to free this temporary format string duplicate.
Fixes the following coverity complaints:
Error: RESOURCE_LEAK (CWE-772):
tools/perf/util/trace-event-parse.c:158: overwrite_var: Overwriting
"printk" in "printk = strdup(fmt + 1)" leaks the storage that "printk"
points to.
tools/perf/util/trace-event-parse.c:162: leaked_storage: Variable
"printk" going out of scope leaks the storage it points to.
Signed-off-by: Sanskriti Sharma <sansharm@redhat.com >
Reviewed-by: Jiri Olsa <jolsa@kernel.org >
Cc: Joe Lawrence <joe.lawrence@redhat.com >
Link: http://lkml.kernel.org/r/1538490554-8161-4-git-send-email-sansharm@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-10-08 14:23:45 -03:00
Tzvetomir Stoyanov (VMware)
2c92f9828b
tools lib traceevent, perf tools: Rename struct format{_field} to struct tep_format{_field}
...
In order to make libtraceevent into a proper library, variables, data
structures and functions require a unique prefix to prevent name space
conflicts. That prefix will be "tep_". This renames struct format to
struct tep_format and struct format_field to struct tep_format_field
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20180919185722.661319373@goodmis.org
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-09-19 17:13:15 -03:00
Tzvetomir Stoyanov (VMware)
4963b0f88b
tools lib traceevent, perf tools: Rename struct event_format to struct tep_event_format
...
In order to make libtraceevent into a proper library, variables, data
structures and functions require a unique prefix to prevent name space
conflicts. That prefix will be "tep_". This renames struct event_format
to struct tep_event_format
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20180919185722.495820809@goodmis.org
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-09-19 17:11:50 -03:00
Chris Phlipot
c9f23d2bc2
perf event-parse: Use fixed size string for comms
...
Some implementations of libc do not support the 'm' width modifier as
part of the scanf string format specifier. This can cause the parsing to
fail. Since the parser never checks if the scanf parsing was
successesful, this can result in a crash.
Change the comm string to be allocated as a fixed size instead of
dynamically using 'm' scanf width modifier. This can be safely done
since comm size is limited to 16 bytes by TASK_COMM_LEN within the
kernel.
This change prevents perf from crashing when linked against bionic as
well as reduces the total number of heap allocations and frees invoked
while accomplishing the same task.
Signed-off-by: Chris Phlipot <cphlipot0@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20180830021950.15563-1-cphlipot0@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-30 14:51:45 -03:00
Tzvetomir Stoyanov (VMware)
13a418904e
tools lib traceevent, perf tools: Rename pevent_register_* APIs
...
In order to make libtraceevent into a proper library, variables, data
structures and functions require a unique prefix to prevent name space
conflicts. That prefix will be "tep_" and not "pevent_". This changes
APIs: pevent_register_comm, pevent_register_print_string
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com >
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20180808180700.948980691@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-13 15:22:08 -03:00
Tzvetomir Stoyanov (VMware)
59c1baee25
tools lib traceevent, perf tools: Rename pevent_read_number_* APIs
...
In order to make libtraceevent into a proper library, variables, data
structures and functions require a unique prefix to prevent name space
conflicts. That prefix will be "tep_" and not "pevent_". This changes
APIs: pevent_read_number, pevent_read_number_field
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com >
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20180808180700.804271434@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-13 15:22:05 -03:00
Tzvetomir Stoyanov (VMware)
c60167c187
tools lib traceevent, perf tools: Rename pevent parse APIs
...
In order to make libtraceevent into a proper library, variables, data
structures and functions require a unique prefix to prevent name space
conflicts. That prefix will be "tep_" and not "pevent_". This changes
APIs: pevent_parse_event, pevent_parse_format, pevent_parse_header_page
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com >
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20180808180700.469749700@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-13 15:21:57 -03:00
Tzvetomir Stoyanov (VMware)
af85cd1952
tools lib traceevent, perf tools: Rename pevent find APIs
...
In order to make libtraceevent into a proper library, variables, data
structures and functions require a unique prefix to prevent name space
conflicts. That prefix will be "tep_" and not "pevent_". This changes
APIs: pevent_find_any_field, pevent_find_common_field,
pevent_find_event, pevent_find_field
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com >
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20180808180700.316995920@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-13 15:21:51 -03:00
Tzvetomir Stoyanov (VMware)
4d5c58b15c
tools lib traceevent, perf tools: Rename pevent alloc / free APIs
...
In order to make libtraceevent into a proper library, variables, data
structures and functions require a unique prefix to prevent name space
conflicts. That prefix will be "tep_" and not "pevent_". This changes
APIs: pevent_alloc, pevent_free, pevent_event_info and pevent_func_resolver_t
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com >
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20180808180700.152609945@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-13 15:21:43 -03:00
Tzvetomir Stoyanov (VMware)
cbc49b25b9
tools lib traceevent, perf tools: Rename 'struct pevent_record' to 'struct tep_record'
...
In order to make libtraceevent into a proper library, variables, data
structures and functions require a unique prefix to prevent name space
conflicts. That prefix will be "tep_" and not "pevent_". This changes
the 'struct pevent_record' to 'struct tep_record'.
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com >
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20180808180659.866021298@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-13 15:21:13 -03:00
Tzvetomir Stoyanov (VMware)
096177a8b5
tools lib traceevent, perf tools: Rename struct pevent to struct tep_handle
...
In order to make libtraceevent into a proper library, variables, data
structures and functions require a unique prefix to prevent name space
conflicts. That prefix will be "tep_" and not "pevent_". This changes
the struct pevent to struct tep_handle.
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com >
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20180808180659.706175783@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-10 15:29:35 -03:00
Arnaldo Carvalho de Melo
d2a74d53aa
perf event-parse: Use pr_warning()
...
Convert sole user of warning() in this file to pr_warning(),
consolidating error reporting facilities.
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Wang Nan <wangnan0@huawei.com >
Link: http://lkml.kernel.org/n/tip-3y7yf6v673ujl2rcs34tzv8n@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2017-06-27 11:08:14 -03:00
Arnaldo Carvalho de Melo
3d689ed609
perf tools: Move sane ctype stuff from util.h to sane_ctype.h
...
More stuff that came from git, out of the hodge-podge that is util.h
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Wang Nan <wangnan0@huawei.com >
Link: http://lkml.kernel.org/n/tip-e3lana4gctz3ub4hn4y29hkw@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2017-04-19 13:01:48 -03:00
Namhyung Kim
cd4ceb6343
perf util: Save pid-cmdline mapping into tracing header
...
Current trace info data lacks the saved cmdline mapping which is needed
for pevent to find out the comm of a task. Add this and bump up the
version number so that perf can determine its presence when reading.
This is mostly corresponding to trace.dat file version 6, but still
lacks 4 byte of number of cpus, and 10 bytes of type string - and I
think we don't need those anyway.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Tested-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jeremy Eder <jeder@redhat.com >
Cc: Jiri Olsa <jolsa@redhat.com >,
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Stephane Eranian <eranian@google.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
[ Change version test from == to >= ]
Link: http://lkml.kernel.org/n/tip-vaooqpxsikxbb3359p0corcb@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2017-01-26 11:42:59 -03:00
Christoph Hellwig
511cbce2ff
irq_poll: make blk-iopoll available outside the block layer
...
The new name is irq_poll as iopoll is already taken. Better suggestions
welcome.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com >
2015-12-11 11:52:24 -08:00
Arnaldo Carvalho de Melo
4263cece22
perf tools: Stop reading the kallsyms data from perf.data
...
As it is not used anymore, since 'perf script' switched to asking
libtraceevent to use tools/perf's symbol resolution routines.
Acked-by: David Ahern <dsahern@gmail.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Borislav Petkov <bp@suse.de >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Stephane Eranian <eranian@google.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/n/tip-4ilhofz4b7o8yokvutjt9yzz@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-07-23 22:51:11 -03:00
Martin Liška
5bcaaca3e4
perf tools: Assign default value for some pointers
...
Assign default value for pointers that are identified by the compiler as
non-initialized.
Signed-off-by: Martin Liska <mliska@suse.cz >
Acked-by: Ingo Molnar <mingo@kernel.org >
Link: http://lkml.kernel.org/r/5564393C.1090104@suse.cz
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-05-27 12:21:45 -03:00
Arnaldo Carvalho de Melo
aa1aac17a1
perf tools: Introduce event_format__fprintf method
...
The existing one, event_format__print() uses stdout unconditionally,
and 'perf trace' needs to use it to format into a file that may have
been set by the user, i.e. 'trace -o file.output'.
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Borislav Petkov <bp@suse.de >
Cc: David Ahern <dsahern@gmail.com >
Cc: Don Zickus <dzickus@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/n/tip-7l0mgm91hwg0bby00s5pse8r@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-06 11:46:37 +01:00
Jiri Olsa
b58f608e31
perf tools: Fix memory leak in event_format__print function
...
Properly destroying trace_seq object.
Signed-off-by: Jiri Olsa <jolsa@redhat.com >
Acked-by: Namhyung Kim <namhyung@kernel.org >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1391377150-23920-2-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-02-18 09:34:47 -03:00
Jiri Olsa
29f5ffd3d3
perf tools: Add trace-event object
...
Add trace-event object to keep together 'struct pevent' object with its
loaded plugins with following interface:
int trace_event__init(struct trace_event *t);
- Initalizes 'struct pevent' object and loads plugins for it
void trace_event__cleanup(struct trace_event *t);
- Cleanups both 'struct pevent' and plugins
Signed-off-by: Jiri Olsa <jolsa@redhat.com >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1386076182-14484-10-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2013-12-04 15:20:52 -03:00
Jiri Olsa
5283ec23a0
perf tools: Remove unused trace-event-* code
...
Removing unused trace-event-* code.
Acked-by: Namhyung Kim <namhyung@kernel.org >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1379003976-5839-3-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2013-10-09 11:15:28 -03:00
Ingo Molnar
0f9654296e
perf tools: Fix old GCC build error in trace-event-parse.c:parse_proc_kallsyms()
...
Old GCC (4.1) does not see through the code flow of parse_proc_kallsyms()
and gets confused about the status of 'fmt':
util/trace-event-parse.c: In function ‘parse_proc_kallsyms’:
util/trace-event-parse.c:189: warning: ‘fmt’ may be used uninitialized in this function
make: *** [util/trace-event-parse.o] Error 1
Help out GCC by initializing 'fmt' to NULL.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/20130912131649.GC23826@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2013-09-19 15:08:47 -03:00
Namhyung Kim
47390ae2af
perf script: Adopt latency_format variable
...
It's the only user of the variable, so move it.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1370323231-14022-14-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2013-07-12 13:52:28 -03:00
Namhyung Kim
9515b2eb76
perf util: Get rid of unused header_page_* variables
...
They're not used anywhere and same information is kept in a pevent
already. So let's get rid of them.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1370323231-14022-13-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2013-07-12 13:52:26 -03:00