perf tools: Remove event types framework completely
Removing event types framework completely. The only remainder (apart
from few comments) is following enum:
  enum perf_user_event_type {
    ...
    PERF_RECORD_HEADER_EVENT_TYPE           = 65, /* deprecated */
    ...
  }
It's kept as deprecated, resulting in error when processed in
perf_session__process_user_event function.
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: 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/1373556513-3000-6-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
	
	
This commit is contained in:
		
					parent
					
						
							
								30d350795e
							
						
					
				
			
			
				commit
				
					
						6065210db9
					
				
			
		
					 9 changed files with 1 additions and 134 deletions
				
			
		|  | @ -67,12 +67,6 @@ static int perf_event__repipe_op2_synth(struct perf_tool *tool, | |||
| 	return perf_event__repipe_synth(tool, event); | ||||
| } | ||||
| 
 | ||||
| static int perf_event__repipe_event_type_synth(struct perf_tool *tool, | ||||
| 					       union perf_event *event) | ||||
| { | ||||
| 	return perf_event__repipe_synth(tool, event); | ||||
| } | ||||
| 
 | ||||
| static int perf_event__repipe_attr(struct perf_tool *tool, | ||||
| 				   union perf_event *event, | ||||
| 				   struct perf_evlist **pevlist) | ||||
|  | @ -402,7 +396,6 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused) | |||
| 			.throttle	= perf_event__repipe, | ||||
| 			.unthrottle	= perf_event__repipe, | ||||
| 			.attr		= perf_event__repipe_attr, | ||||
| 			.event_type	= perf_event__repipe_event_type_synth, | ||||
| 			.tracing_data	= perf_event__repipe_op2_synth, | ||||
| 			.finished_round	= perf_event__repipe_op2_synth, | ||||
| 			.build_id	= perf_event__repipe_op2_synth, | ||||
|  |  | |||
|  | @ -474,13 +474,6 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv) | |||
| 			goto out_delete_session; | ||||
| 		} | ||||
| 
 | ||||
| 		err = perf_event__synthesize_event_types(tool, process_synthesized_event, | ||||
| 							 machine); | ||||
| 		if (err < 0) { | ||||
| 			pr_err("Couldn't synthesize event_types.\n"); | ||||
| 			goto out_delete_session; | ||||
| 		} | ||||
| 
 | ||||
| 		if (have_tracepoints(&evsel_list->entries)) { | ||||
| 			/*
 | ||||
| 			 * FIXME err <= 0 here actually means that | ||||
|  |  | |||
|  | @ -741,7 +741,6 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused) | |||
| 			.lost		 = perf_event__process_lost, | ||||
| 			.read		 = process_read_event, | ||||
| 			.attr		 = perf_event__process_attr, | ||||
| 			.event_type	 = perf_event__process_event_type, | ||||
| 			.tracing_data	 = perf_event__process_tracing_data, | ||||
| 			.build_id	 = perf_event__process_build_id, | ||||
| 			.ordered_samples = true, | ||||
|  |  | |||
|  | @ -524,7 +524,6 @@ static struct perf_tool perf_script = { | |||
| 	.exit		 = perf_event__process_exit, | ||||
| 	.fork		 = perf_event__process_fork, | ||||
| 	.attr		 = perf_event__process_attr, | ||||
| 	.event_type	 = perf_event__process_event_type, | ||||
| 	.tracing_data	 = perf_event__process_tracing_data, | ||||
| 	.build_id	 = perf_event__process_build_id, | ||||
| 	.ordered_samples = true, | ||||
|  |  | |||
|  | @ -116,7 +116,7 @@ struct build_id_event { | |||
| enum perf_user_event_type { /* above any possible kernel type */ | ||||
| 	PERF_RECORD_USER_TYPE_START		= 64, | ||||
| 	PERF_RECORD_HEADER_ATTR			= 64, | ||||
| 	PERF_RECORD_HEADER_EVENT_TYPE		= 65, | ||||
| 	PERF_RECORD_HEADER_EVENT_TYPE		= 65, /* depreceated */ | ||||
| 	PERF_RECORD_HEADER_TRACING_DATA		= 66, | ||||
| 	PERF_RECORD_HEADER_BUILD_ID		= 67, | ||||
| 	PERF_RECORD_FINISHED_ROUND		= 68, | ||||
|  |  | |||
|  | @ -25,41 +25,9 @@ | |||
| 
 | ||||
| static bool no_buildid_cache = false; | ||||
| 
 | ||||
| static int trace_event_count; | ||||
| static struct perf_trace_event_type *trace_events; | ||||
| 
 | ||||
| static u32 header_argc; | ||||
| static const char **header_argv; | ||||
| 
 | ||||
| int perf_header__push_event(u64 id, const char *name) | ||||
| { | ||||
| 	struct perf_trace_event_type *nevents; | ||||
| 
 | ||||
| 	if (strlen(name) > MAX_EVENT_NAME) | ||||
| 		pr_warning("Event %s will be truncated\n", name); | ||||
| 
 | ||||
| 	nevents = realloc(trace_events, (trace_event_count + 1) * sizeof(*trace_events)); | ||||
| 	if (nevents == NULL) | ||||
| 		return -ENOMEM; | ||||
| 	trace_events = nevents; | ||||
| 
 | ||||
| 	memset(&trace_events[trace_event_count], 0, sizeof(struct perf_trace_event_type)); | ||||
| 	trace_events[trace_event_count].event_id = id; | ||||
| 	strncpy(trace_events[trace_event_count].name, name, MAX_EVENT_NAME - 1); | ||||
| 	trace_event_count++; | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| char *perf_header__find_event(u64 id) | ||||
| { | ||||
| 	int i; | ||||
| 	for (i = 0 ; i < trace_event_count; i++) { | ||||
| 		if (trace_events[i].event_id == id) | ||||
| 			return trace_events[i].name; | ||||
| 	} | ||||
| 	return NULL; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * magic2 = "PERFILE2" | ||||
|  * must be a numerical value to let the endianness | ||||
|  | @ -2936,64 +2904,6 @@ int perf_event__process_attr(struct perf_tool *tool __maybe_unused, | |||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| int perf_event__synthesize_event_type(struct perf_tool *tool, | ||||
| 				      u64 event_id, char *name, | ||||
| 				      perf_event__handler_t process, | ||||
| 				      struct machine *machine) | ||||
| { | ||||
| 	union perf_event ev; | ||||
| 	size_t size = 0; | ||||
| 	int err = 0; | ||||
| 
 | ||||
| 	memset(&ev, 0, sizeof(ev)); | ||||
| 
 | ||||
| 	ev.event_type.event_type.event_id = event_id; | ||||
| 	memset(ev.event_type.event_type.name, 0, MAX_EVENT_NAME); | ||||
| 	strncpy(ev.event_type.event_type.name, name, MAX_EVENT_NAME - 1); | ||||
| 
 | ||||
| 	ev.event_type.header.type = PERF_RECORD_HEADER_EVENT_TYPE; | ||||
| 	size = strlen(ev.event_type.event_type.name); | ||||
| 	size = PERF_ALIGN(size, sizeof(u64)); | ||||
| 	ev.event_type.header.size = sizeof(ev.event_type) - | ||||
| 		(sizeof(ev.event_type.event_type.name) - size); | ||||
| 
 | ||||
| 	err = process(tool, &ev, NULL, machine); | ||||
| 
 | ||||
| 	return err; | ||||
| } | ||||
| 
 | ||||
| int perf_event__synthesize_event_types(struct perf_tool *tool, | ||||
| 				       perf_event__handler_t process, | ||||
| 				       struct machine *machine) | ||||
| { | ||||
| 	struct perf_trace_event_type *type; | ||||
| 	int i, err = 0; | ||||
| 
 | ||||
| 	for (i = 0; i < trace_event_count; i++) { | ||||
| 		type = &trace_events[i]; | ||||
| 
 | ||||
| 		err = perf_event__synthesize_event_type(tool, type->event_id, | ||||
| 							type->name, process, | ||||
| 							machine); | ||||
| 		if (err) { | ||||
| 			pr_debug("failed to create perf header event type\n"); | ||||
| 			return err; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return err; | ||||
| } | ||||
| 
 | ||||
| int perf_event__process_event_type(struct perf_tool *tool __maybe_unused, | ||||
| 				   union perf_event *event) | ||||
| { | ||||
| 	if (perf_header__push_event(event->event_type.event_type.event_id, | ||||
| 				    event->event_type.event_type.name) < 0) | ||||
| 		return -ENOMEM; | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| int perf_event__synthesize_tracing_data(struct perf_tool *tool, int fd, | ||||
| 					struct perf_evlist *evlist, | ||||
| 					perf_event__handler_t process) | ||||
|  |  | |||
|  | @ -102,9 +102,6 @@ int perf_session__write_header(struct perf_session *session, | |||
| 			       int fd, bool at_exit); | ||||
| int perf_header__write_pipe(int fd); | ||||
| 
 | ||||
| int perf_header__push_event(u64 id, const char *name); | ||||
| char *perf_header__find_event(u64 id); | ||||
| 
 | ||||
| void perf_header__set_feat(struct perf_header *header, int feat); | ||||
| void perf_header__clear_feat(struct perf_header *header, int feat); | ||||
| bool perf_header__has_feat(const struct perf_header *header, int feat); | ||||
|  | @ -132,16 +129,6 @@ int perf_event__synthesize_attrs(struct perf_tool *tool, | |||
| int perf_event__process_attr(struct perf_tool *tool, union perf_event *event, | ||||
| 			     struct perf_evlist **pevlist); | ||||
| 
 | ||||
| int perf_event__synthesize_event_type(struct perf_tool *tool, | ||||
| 				      u64 event_id, char *name, | ||||
| 				      perf_event__handler_t process, | ||||
| 				      struct machine *machine); | ||||
| int perf_event__synthesize_event_types(struct perf_tool *tool, | ||||
| 				       perf_event__handler_t process, | ||||
| 				       struct machine *machine); | ||||
| int perf_event__process_event_type(struct perf_tool *tool, | ||||
| 				   union perf_event *event); | ||||
| 
 | ||||
| int perf_event__synthesize_tracing_data(struct perf_tool *tool, | ||||
| 					int fd, struct perf_evlist *evlist, | ||||
| 					perf_event__handler_t process); | ||||
|  |  | |||
|  | @ -241,13 +241,6 @@ static int process_finished_round_stub(struct perf_tool *tool __maybe_unused, | |||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static int process_event_type_stub(struct perf_tool *tool __maybe_unused, | ||||
| 				   union perf_event *event __maybe_unused) | ||||
| { | ||||
| 	dump_printf(": unhandled!\n"); | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static int process_finished_round(struct perf_tool *tool, | ||||
| 				  union perf_event *event, | ||||
| 				  struct perf_session *session); | ||||
|  | @ -274,8 +267,6 @@ static void perf_tool__fill_defaults(struct perf_tool *tool) | |||
| 		tool->unthrottle = process_event_stub; | ||||
| 	if (tool->attr == NULL) | ||||
| 		tool->attr = process_event_synth_attr_stub; | ||||
| 	if (tool->event_type == NULL) | ||||
| 		tool->event_type = process_event_type_stub; | ||||
| 	if (tool->tracing_data == NULL) | ||||
| 		tool->tracing_data = process_event_synth_tracing_data_stub; | ||||
| 	if (tool->build_id == NULL) | ||||
|  | @ -928,8 +919,6 @@ static int perf_session__process_user_event(struct perf_session *session, union | |||
| 		if (err == 0) | ||||
| 			perf_session__set_id_hdr_size(session); | ||||
| 		return err; | ||||
| 	case PERF_RECORD_HEADER_EVENT_TYPE: | ||||
| 		return tool->event_type(tool, event); | ||||
| 	case PERF_RECORD_HEADER_TRACING_DATA: | ||||
| 		/* setup for reading amidst mmap */ | ||||
| 		lseek(session->fd, file_offset, SEEK_SET); | ||||
|  |  | |||
|  | @ -22,8 +22,6 @@ typedef int (*event_attr_op)(struct perf_tool *tool, | |||
| 			     union perf_event *event, | ||||
| 			     struct perf_evlist **pevlist); | ||||
| 
 | ||||
| typedef int (*event_simple_op)(struct perf_tool *tool, union perf_event *event); | ||||
| 
 | ||||
| typedef int (*event_op2)(struct perf_tool *tool, union perf_event *event, | ||||
| 			 struct perf_session *session); | ||||
| 
 | ||||
|  | @ -39,7 +37,6 @@ struct perf_tool { | |||
| 			unthrottle; | ||||
| 	event_attr_op	attr; | ||||
| 	event_op2	tracing_data; | ||||
| 	event_simple_op	event_type; | ||||
| 	event_op2	finished_round, | ||||
| 			build_id; | ||||
| 	bool		ordered_samples; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jiri Olsa
				Jiri Olsa