Irina Tirdea
9612ef6716
tools lib traceevent: replace mempcpy with memcpy
...
The mempcpy function is not supported by bionic in Android and will lead
to compilation errors.
Replacing mempcpy with memcpy so it will work in Android.
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Namhyung Kim <namhyung.kim@lge.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/1347065004-15306-11-git-send-email-irina.tirdea@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-09-07 22:11:20 -03:00
Namhyung Kim
67ed939c9e
tools lib traceevent: Get rid of die() from pevent_register_print_function
...
If memory allocation for handler fails or argument type is not match,
return gracefully instead of calling die(). Also add an new error code
for the later case.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1346986187-5170-3-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-09-07 12:15:31 -03:00
Namhyung Kim
0ca8da00ad
tools lib traceevent: Get rid of die() from pevent_register_event_handler
...
If memory allocation for handler fails, return gracefully instead of
calling die(). Note that casts to void * are needed because gcc
complained about discarding 'const' qualifier during implicit argument
cast.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1346986187-5170-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-09-07 12:15:07 -03:00
Namhyung Kim
245c5a1843
tools lib traceevent: Get rid of die() from pretty_print()
...
There are three cases that call die() in the pretty_print.
1. insufficient number of argument: cannot proceed anymore.
2. too long format conversion specifier: truncate and proceed.
3. bad size specifier in format string: skip and proceed.
For all cases, convert die to do_warning, mark the event as
EVENT_FL_FAILED and print error message at the last.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1346986187-5170-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-09-07 12:14:30 -03:00
Steven Rostedt
ff1a70e75f
tools lib traceevent: Modify header to work in C++ programs
...
Replace keyword "private" to "priv" in event-parse.h to allow it to be
used in C++ programs.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/1345735321.5069.62.camel@gandalf.local.home
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-09-05 17:17:30 -03:00
Namhyung Kim
f63fe79fa0
tools lib traceevent: Fix off-by-one bug in pevent_strerror()
...
As pevent_errno is defined using PEVENT_ERRORS which uses _PE macro
magic, the first errno is bigger than __PEVENT_ERRNO_START by 1. So we
need to subtract the 1 also when calculating the index of the error
strings.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1345707420-21767-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-08-23 11:29:20 -03:00
Namhyung Kim
e1aa7c30c5
tools lib traceevent: Fix strerror_r() use in pevent_strerror
...
glibc-2.16 starts to mark the function with attribute warn_unused_result
so that it can cause a build warning.
Since GNU version of strerror_r() can return a pointer to a string
without setting @buf, check the return value and copy/truncate it to our
buffer if needed.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Acked-by: Kirill A. Shutemov <kirill@shutemov.name >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Kirill A. Shutemov <kirill@shutemov.name >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1345618831-9148-5-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-08-22 16:04:05 -03:00
Namhyung Kim
2f197b9d7e
tools lib traceevent: Introduce pevent_strerror
...
The pevent_strerror() sets @buf to a string that describes the
(libtraceevent-specific) error condition that is passed via @errnum.
This is similar to strerror_r() and does same thing if @errnum has a
standard errno value.
To sync error string with its code, define PEVENT_ERRORS with _PE()
macro and use it as suggested by Steven.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1345618831-9148-4-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-08-22 16:03:39 -03:00
Namhyung Kim
bffddffde7
tools lib traceevent: Introduce pevent_errno
...
Define and use error numbers for pevent_parse_event() and get rid of
die() and do_warning() calls. If the function returns non-zero value,
the caller can check the return code and do appropriate things.
I chose the error numbers to be negative not to clash with standard
errno, and as usual, 0 for success.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1345618831-9148-3-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-08-22 16:02:59 -03:00
Namhyung Kim
fd34f0b26c
tools lib traceevent: Do not link broken field arg for an old ftrace event
...
Defer linking a newly allocated arg to print_fmt.args until all of its
field is setup so that later access to ->field.name cannot be NULL.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1345618831-9148-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-08-22 16:02:36 -03:00
Robert Richter
0cf260131c
tools lib traceevent: Fix cast from pointer to integer for 32 bit
...
Fixing the integer cast reported by the following warning:
tools/lib/traceevent/event-parse.c:3488:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
Signed-off-by: Robert Richter <robert.richter@amd.com >
Cc: Ingo Molnar <mingo@kernel.org >
Link: http://lkml.kernel.org/r/1344361396-7237-5-git-send-email-robert.richter@amd.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-08-08 12:40:44 -03:00
Namhyung Kim
52f18a2ff9
tools lib traceevent: Ignore TRACEEVENT-CFLAGS file
...
The TRACEEVENT-CFLAGS file is used to detect any change on compiler
flags. Just ignore it.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Cc: David Ahern <dsahern@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 >
Link: http://lkml.kernel.org/r/1341559297-25725-3-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-07-25 11:54:44 -03:00
Namhyung Kim
52b5c0d485
tools lib traceevent: Detect build environment changes
...
Cross compiling perf requires setting ARCH and CROSS_COMPILE variables,
but libtraceevent couldn't detect the changes so it ends up believing no
recompiling is required. Thus the linker failed like:
LINK perf
../lib/traceevent//libtraceevent.a: member ../lib/traceevent//libtraceevent.a(event-parse.o) in archive is not an object
collect2: ld returned 1 exit status
make: *** [perf] Error 1
This patch fixes this by adding TRACEEVENT-CFLAGS file like
PERF-CFLAGS to track those changes.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Cc: David Ahern <dsahern@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 >
Link: http://lkml.kernel.org/r/1341559297-25725-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2012-07-25 11:54:06 -03:00
Namhyung Kim
f6ced60fb6
tools lib traceevent: Cleanup realloc use
...
The if branch is completely unnecessary since 'realloc' can handle
NULL pointers for the first parameter.
This patch is just an adoption of Ulrich Drepper's recent patch on
perf tools.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ulrich Drepper <drepper@gmail.com >
Link: http://lkml.kernel.org/r/1335230984-7613-1-git-send-email-namhyung.kim@lge.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:31 +09:00
Peter Huewe
c9bbabe32a
tools lib traceevent: Add missing break in make_bprint_args
...
In the current code we assign vsize=8 and then fall through to the
default and assign vsize=1. -> probably the break is missing here,
otherwise we can remove the case.
Signed-off-by: Peter Huewe <peterhuewe@gmx.de >
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/n/tip-3fxjy46h2tr9pl0spv7tems6@git.kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:31 +09:00
Namhyung Kim
0fed483415
tools lib traceevent: Check return value of arg_to_str()
...
The arg_to_str() can fail so we should handle that case properly.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Link: http://lkml.kernel.org/r/1335157118-14658-12-git-send-email-namhyung.kim@lge.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:31 +09:00
Namhyung Kim
e54b34aed1
tools lib traceevent: Check result of malloc() during reading token
...
The malloc can fail so the return value should be checked. For now,
just use malloc_or_die().
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Link: http://lkml.kernel.org/r/1335157118-14658-10-git-send-email-namhyung.kim@lge.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:31 +09:00
Namhyung Kim
16e6b8fdfd
tools lib traceevent: Fix some comments
...
Update and add missing argument descriptions and fix some typo on
function comments.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Link: http://lkml.kernel.org/r/1335157118-14658-9-git-send-email-namhyung.kim@lge.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:31 +09:00
Namhyung Kim
4b5632bc31
tools lib traceevent: Do not call add_event() again if allocation failed
...
When memory allocation for the field name is failed, do not goto
event_failed since we added the event already.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Link: http://lkml.kernel.org/r/1335157118-14658-8-git-send-email-namhyung.kim@lge.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:31 +09:00
Namhyung Kim
3831a42deb
tools lib traceevent: Pass string type argument to args
...
It seems PEVENT_FUNC_ARG_STRING missed passing the allocated string to
the args array. Fix it.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Link: http://lkml.kernel.org/r/1335157118-14658-7-git-send-email-namhyung.kim@lge.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:31 +09:00
Namhyung Kim
d286447f23
tools lib traceevent: Handle realloc() failure path
...
The realloc can fail so that we should handle it properly.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Link: http://lkml.kernel.org/r/1333940074-19052-7-git-send-email-namhyung.kim@lge.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:31 +09:00
Namhyung Kim
ca63858e9e
tools lib traceevent: Handle strdup failure cases
...
There were some places didn't check return value of the strdup and had
unneeded/duplicated checks. Fix it.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Link: http://lkml.kernel.org/r/1333940074-19052-5-git-send-email-namhyung.kim@lge.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:31 +09:00
Namhyung Kim
deba3fb26f
tools lib traceevent: Introduce extend_token()
...
The __read_token() function has some duplicated code to handle
internal buffer overflow. Factor them out to new extend_token().
According to the man pages of realloc/free(3), they can handle NULL
pointer input so that it can be ended up to compact the code. Also
handle error path correctly.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Link: http://lkml.kernel.org/r/1333940074-19052-4-git-send-email-namhyung.kim@lge.com
[rostedt@goodmis.org: added some extra whitespace]
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2012-07-04 13:40:31 +09:00
Namhyung Kim
0fc45ef520
tools lib traceevent: Fix printk_cmp()
...
The printk_cmp function should use printk_map instead of func_map.
Also rename the variables for consistency.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@infradead.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Ahern <dsahern@gmail.com >
Link: http://lkml.kernel.org/r/1333940074-19052-3-git-send-email-namhyung.kim@lge.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:30 +09:00
Wolfgang Mauerer
c5b35b7319
tools lib traceevent: Fix trace_printk for long integers
...
On 32 bit systems, a conversion of the trace_printk format string
"%lu" -> "%llu" is intended (similar for %lx etc.) when a trace was
taken on a machine with 64 bit long integers. However, the current
code computes the bogus transformation "%lu" -> "%u". Fix this.
Besides that, the transformation is only required on systems that don't
use 64 bits for long integers natively.
Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com >
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1332411501-8059-3-git-send-email-wolfgang.mauerer@siemens.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2012-07-04 13:40:30 +09:00