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
Tzvetomir Stoyanov (VMware)
266b851cc2
tools lib traceevent, perf tools: Split trace-seq related APIs in a separate header file
...
In order to make libtraceevent into a proper library, all its APIs
should be defined in corresponding header files. This patch splits
trace-seq related APIs in a separate header file: trace-seq.h
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Link: http://lkml.kernel.org/r/20180828185038.2dcb2743@gandalf.local.home
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-30 15:52:20 -03:00
Tzvetomir Stoyanov (VMware)
8b3e08722e
tools lib traceevent: Rename pevent field 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_free_format, pevent_free_format_field, pevent_get_field_raw,
pevent_get_field_val, pevent_get_common_field_val, pevent_get_any_field_val
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/20180808180702.821244942@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-13 15:30:30 -03:00
Tzvetomir Stoyanov (VMware)
b843e9c3a2
tools lib traceevent: Rename pevent_register / unregister 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_print_function, pevent_unregister_print_function,
pevent_register_event_handler, pevent_unregister_event_handler,
pevent_register_function, pevent_register_trace_clock
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
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/20180808180702.524813185@goodmis.org
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2018-08-13 15:27:35 -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)
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)
c32d52b464
tools lib traceevent, perf tools: Rename pevent plugin related 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
the pevent plugin related API.
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.005287044@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:39 -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
Daniel Bristot de Oliveira
074859184d
tools lib traceevent: Fix prev/next_prio for deadline tasks
...
Currently, the sched:sched_switch tracepoint reports deadline tasks with
priority -1. But when reading the trace via perf script I've got the
following output:
# ./d & # (d is a deadline task, see [1])
# perf record -e sched:sched_switch -a sleep 1
# perf script
...
swapper 0 [000] 2146.962441: sched:sched_switch: swapper/0:0 [120] R ==> d:2593 [4294967295]
d 2593 [000] 2146.972472: sched:sched_switch: d:2593 [4294967295] R ==> g:2590 [4294967295]
The task d reports the wrong priority [4294967295]. This happens because
the "int prio" is stored in an unsigned long long val. Although it is
set as a %lld, as int is shorter than unsigned long long,
trace_seq_printf prints it as a positive number.
The fix is just to cast the val as an int, and print it as a %d,
as in the sched:sched_switch tracepoint's "format".
The output with the fix is:
# ./d &
# perf record -e sched:sched_switch -a sleep 1
# perf script
...
swapper 0 [000] 4306.374037: sched:sched_switch: swapper/0:0 [120] R ==> d:10941 [-1]
d 10941 [000] 4306.383823: sched:sched_switch: d:10941 [-1] R ==> swapper/0:0 [120]
[1] d.c
---
#include <stdio.h>
#include <unistd.h>
#include <sys/syscall.h>
#include <linux/types.h>
#include <linux/sched.h>
struct sched_attr {
__u32 size, sched_policy;
__u64 sched_flags;
__s32 sched_nice;
__u32 sched_priority;
__u64 sched_runtime, sched_deadline, sched_period;
};
int sched_setattr(pid_t pid, const struct sched_attr *attr, unsigned int flags)
{
return syscall(__NR_sched_setattr, pid, attr, flags);
}
int main(void)
{
struct sched_attr attr = {
.size = sizeof(attr),
.sched_policy = SCHED_DEADLINE, /* This creates a 10ms/30ms reservation */
.sched_runtime = 10 * 1000 * 1000,
.sched_period = attr.sched_deadline = 30 * 1000 * 1000,
};
if (sched_setattr(0, &attr, 0) < 0) {
perror("sched_setattr");
return -1;
}
for(;;);
}
---
Committer notes:
Got the program from the provided URL, http://bristot.me/lkml/d.c ,
trimmed it and included in the cset log above, so that we have
everything needed to test it in one place.
Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Daniel Bristot de Oliveira <bristot@redhat.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/866ef75bcebf670ae91c6a96daa63597ba981f0d.1483443552.git.bristot@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2017-01-03 16:11:12 -03:00
Namhyung Kim
02bafd377c
tools lib traceevent: Unregister handler when sched_switch plugin is unloaded
...
The event handlers should be unregistered when the plugin is unloaded
otherwise they'll try to access invalid memory.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
Reviewed-by: Jiri Olsa <jolsa@redhat.com >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Namhyung Kim <namhyung.kim@lge.com >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/1389839478-5887-8-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-01-16 16:26:25 -03:00
Jiri Olsa
83e815ee1c
tools lib traceevent: Add sched_switch plugin
...
Backporting sched_switch plugin.
Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
This plugin adds fields resolving for sched:sched_switch tracepoint
event.
The diff of 'perf script' output generated by old and new code:
(data was generated by 'perf record -e sched:sched_switch -a')
--- script.sched_switch.old
+++ script.sched_switch.new
- perf 577 [002] 30965.311852: sched:sched_switch: prev_comm=perf prev_pid=577 prev_prio=120 prev_state=S ==> next_comm=swapper/2 next_pid=0 next_prio=120
+ perf 577 [002] 30965.311852: sched:sched_switch: perf:577 [120] S ==> swapper/2:0 [120]
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-18-git-send-email-jolsa@redhat.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2013-12-04 15:31:11 -03:00