b3511d0530
tools lib traceevent: Fix freeing arg on process_dynamic_array()
...
The @arg paremeter should not be freed inside of process_XXX(),
because it'd be freed from the caller of process_arg(). We can
free it only after it was reused for local usage.
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1337740619-27925-14-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-05-24 11:33:53 -03:00
d1de108709
tools lib traceevent: Fix a possibly wrong memory dereference
...
If set_op_prio() failed, the token will be freed at out_free,
then arg->op.op would turn out to be a dangle pointer. After
returning EVENT_ERROR from process_op(), free_arg() will be
called and then it will finally see the dangling pointer.
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1337740619-27925-13-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-05-24 11:33:34 -03:00
57d34dc556
tools lib traceevent: Fix a possible memory leak
...
If event_read_fields failed in the middle, each member of
struct format_field should be freed also.
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1337740619-27925-11-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-05-24 11:32:10 -03:00
00b9da7219
tools lib traceevent: Allow expressions in __print_symbolic() fields
...
The __print_symbolic() function takes a sequence of key-value pairs for
pretty-printing a constant. The new kvm:kvm_exit print fmt uses the
expression:
__print_symbolic(..., { 0x040 + 1, "DB excp" }, ...)
Currently only atoms are supported and this print fmt fails to parse.
This patch adds support for expressions instead of just atoms so that
0x040 + 1 is parsed successfully.
Cc: Avi Kivity <avi@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1337740619-27925-6-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com >
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-05-24 11:29:25 -03:00
1c698186ab
parse-events: Rename struct record to struct pevent_record
...
As libtraceevent will be a library, having struct record is far
too generic of a name to use. Renaming it to be consistent with the
rest of the functions will be a better long term solution.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:48 +02:00
42c80139ea
parse-event: Fix memset pointer size bug in handle
...
Fix memset(ptr, 0, sizeof(ptr)) to memset(ptr, 0, sizeof(*ptr))
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:44 +02:00
2e7a5fc8d4
parse-events: Allow '*' and '/' operations in TP_printk
...
Add multiply and divide operations in the printk format.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:41 +02:00
b48285980d
parse-events: Support '+' opcode in print format
...
The '+' opcode is not supported in the arguments for the print format.
This patch adds support for it.
Cc: Michael Rubin <mrubin@google.com >
Cc: David Sharp <dhsharp@google.com >
Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com >
Link: http://lkml.kernel.org/r/1310785241-3799-4-git-send-email-vnagarnaik@google.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:38 +02:00
a2525a0852
parse-events: Let pevent_free() take a NULL pointer
...
The pevent_free() should ack like other free()s and allow a
NULL pointer to be passed to it which makes error handling a bit
easier for the users of pevent_free().
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:35 +02:00
14ffde0e96
parse-events: Handle opcode parsing error
...
If an invalid opcode is encountered in parsing event print format, the
trace-cmd calls exit() without parsing any other events.
This patch adds handling for such an error where the get_op_prio() is
called. If the return value is -1, then the event print format parsing
is skipped and parsing continues.
Cc: Michael Rubin <mrubin@google.com >
Cc: David Sharp <dhsharp@google.com >
Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com >
Link: http://lkml.kernel.org/r/1311619257-4970-1-git-send-email-vnagarnaik@google.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:32 +02:00
d69afed55b
parse-events: Handle invalid opcode parsing gracefully
...
If an invalid opcode is encountered, trace-cmd exits with an error.
Instead it can be treated as a soft error where the event's print format
is not parsed and its binary data is dumped out.
This patch adds a return value to arg_num_eval() function to indicate if
the parsing was successful. If not, then the error is considered soft
and the parsing of the offending event fails.
Cc: Michael Rubin <mrubin@google.com >
Cc: David Sharp <dhsharp@google.com >
Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com >
Link: http://lkml.kernel.org/r/1310785241-3799-2-git-send-email-vnagarnaik@google.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:28 +02:00
54a3625829
perf/events: Correct size given to memset
...
This is a forward port of commit 5660ce3424
perf tools: Correct size given to memset
written by Julia Lawall and forward ported by Steven Rostedt.
Signed-off-by: Julia Lawall <julia@diku.dk >
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:25 +02:00
5205aec960
perf/events: Add flag/symbol format_flags
...
This is a port of commit eb9a42caa7
perf trace: Add flag/symbolic format_flags
of the old trace-event-parse.c to the new event-parse.c that
was written by Tom Zanussi and forward ported by Steven Rostedt.
Signed-off-by: Tom Zanussi <tzanussi@gmail.com >
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:22 +02:00
4dc1024a7a
perf/events: Add flag to produce nsec output
...
libtraceevent library prints out in usecs but perf wants to print out
in nsecs. Add a flag that lets the user decide to print out in usec
or nsec times.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:35:18 +02:00
668fe01f1c
events: Update tools/lib/traceevent to work with perf
...
Some of the util functions of libtraceevent.a conflict with perf,
such as die(), warning() and others. Move them into event-util.h
that is not included by the perf tools.
Also, as perf compiles with 'bool' the filter_arg->bool needs to
be renamed to filter_arg->boolean.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 13:12:26 +02:00
f7d82350e5
tools/events: Add files to create libtraceevent.a
...
Copy over the files from trace-cmd to the Linux tools directory
such that applications like perf and latencytrace can use the
more advanced parsing code.
Because some of the file names of perf conflict with trace-cmd file
names, the trace-cmd files have been renamed as follows:
parse-events.c ==> event-parse.c
parse-events.h ==> event-parse.h
utils.h ==> event-utils.h
The files have been updated to handle the changes to the header files
but other than that, they are identical to what was in the trace-cmd
repository. The history of these files, including authorship is
available at the git repo:
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
The Makefile was also copied over, but most of it was removed to
focus on the parse-events code first. The parts of the Makefile for
the plugins have also been removed, but will be added back when the
plugin code is copied over as well. But that may be in its own
separate directory.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Arun Sharma <asharma@fb.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
2012-04-25 12:28:28 +02:00