Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 29f5ffd3 authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo
Browse files

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: default avatarJiri 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: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent cef82c9f
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -353,6 +353,7 @@ LIB_OBJS += $(OUTPUT)util/pmu-bison.o
LIB_OBJS += $(OUTPUT)util/trace-event-read.o
LIB_OBJS += $(OUTPUT)util/trace-event-read.o
LIB_OBJS += $(OUTPUT)util/trace-event-info.o
LIB_OBJS += $(OUTPUT)util/trace-event-info.o
LIB_OBJS += $(OUTPUT)util/trace-event-scripting.o
LIB_OBJS += $(OUTPUT)util/trace-event-scripting.o
LIB_OBJS += $(OUTPUT)util/trace-event.o
LIB_OBJS += $(OUTPUT)util/svghelper.o
LIB_OBJS += $(OUTPUT)util/svghelper.o
LIB_OBJS += $(OUTPUT)util/sort.o
LIB_OBJS += $(OUTPUT)util/sort.o
LIB_OBJS += $(OUTPUT)util/hist.o
LIB_OBJS += $(OUTPUT)util/hist.o
+1 −1
Original line number Original line Diff line number Diff line
@@ -1786,7 +1786,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
			return -1;
			return -1;
		}
		}


		err = scripting_ops->generate_script(session->pevent,
		err = scripting_ops->generate_script(session->tevent.pevent,
						     "perf-script");
						     "perf-script");
		goto out;
		goto out;
	}
	}
+4 −4
Original line number Original line Diff line number Diff line
@@ -2834,11 +2834,11 @@ int perf_session__read_header(struct perf_session *session)


	symbol_conf.nr_events = nr_attrs;
	symbol_conf.nr_events = nr_attrs;


	perf_header__process_sections(header, fd, &session->pevent,
	perf_header__process_sections(header, fd, &session->tevent,
				      perf_file_section__process);
				      perf_file_section__process);


	if (perf_evlist__prepare_tracepoint_events(session->evlist,
	if (perf_evlist__prepare_tracepoint_events(session->evlist,
						   session->pevent))
						   session->tevent.pevent))
		goto out_delete_evlist;
		goto out_delete_evlist;


	return 0;
	return 0;
@@ -3003,7 +3003,7 @@ int perf_event__process_tracing_data(struct perf_tool *tool __maybe_unused,
	lseek(fd, offset + sizeof(struct tracing_data_event),
	lseek(fd, offset + sizeof(struct tracing_data_event),
	      SEEK_SET);
	      SEEK_SET);


	size_read = trace_report(fd, &session->pevent,
	size_read = trace_report(fd, &session->tevent,
				 session->repipe);
				 session->repipe);
	padding = PERF_ALIGN(size_read, sizeof(u64)) - size_read;
	padding = PERF_ALIGN(size_read, sizeof(u64)) - size_read;


@@ -3025,7 +3025,7 @@ int perf_event__process_tracing_data(struct perf_tool *tool __maybe_unused,
	}
	}


	perf_evlist__prepare_tracepoint_events(session->evlist,
	perf_evlist__prepare_tracepoint_events(session->evlist,
					       session->pevent);
					       session->tevent.pevent);


	return size_read + padding;
	return size_read + padding;
}
}
+1 −0
Original line number Original line Diff line number Diff line
@@ -18,4 +18,5 @@ util/cgroup.c
util/rblist.c
util/rblist.c
util/strlist.c
util/strlist.c
util/fs.c
util/fs.c
util/trace-event.c
../../lib/rbtree.c
../../lib/rbtree.c
+2 −1
Original line number Original line Diff line number Diff line
#ifndef __PERF_SESSION_H
#ifndef __PERF_SESSION_H
#define __PERF_SESSION_H
#define __PERF_SESSION_H


#include "trace-event.h"
#include "hist.h"
#include "hist.h"
#include "event.h"
#include "event.h"
#include "header.h"
#include "header.h"
@@ -32,7 +33,7 @@ struct perf_session {
	struct perf_header	header;
	struct perf_header	header;
	struct machines		machines;
	struct machines		machines;
	struct perf_evlist	*evlist;
	struct perf_evlist	*evlist;
	struct pevent		*pevent;
	struct trace_event	tevent;
	struct events_stats	stats;
	struct events_stats	stats;
	bool			repipe;
	bool			repipe;
	struct ordered_samples	ordered_samples;
	struct ordered_samples	ordered_samples;
Loading