diff options
Diffstat (limited to 'tools/perf/builtin-inject.c')
| -rw-r--r-- | tools/perf/builtin-inject.c | 53 | 
1 files changed, 22 insertions, 31 deletions
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c index 84ad6abe4258..9b336fdb6f71 100644 --- a/tools/perf/builtin-inject.c +++ b/tools/perf/builtin-inject.c @@ -38,8 +38,7 @@ struct event_entry {  };  static int perf_event__repipe_synth(struct perf_tool *tool, -				    union perf_event *event, -				    struct machine *machine __maybe_unused) +				    union perf_event *event)  {  	struct perf_inject *inject = container_of(tool, struct perf_inject, tool);  	uint32_t size; @@ -65,39 +64,28 @@ static int perf_event__repipe_op2_synth(struct perf_tool *tool,  					struct perf_session *session  					__maybe_unused)  { -	return perf_event__repipe_synth(tool, event, NULL); +	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, NULL); -} - -static int perf_event__repipe_tracing_data_synth(union perf_event *event, -						 struct perf_session *session -						 __maybe_unused) -{ -	return perf_event__repipe_synth(NULL, event, NULL); -} - -static int perf_event__repipe_attr(union perf_event *event, -				   struct perf_evlist **pevlist __maybe_unused) +static int perf_event__repipe_attr(struct perf_tool *tool, +				   union perf_event *event, +				   struct perf_evlist **pevlist)  {  	int ret; -	ret = perf_event__process_attr(event, pevlist); + +	ret = perf_event__process_attr(tool, event, pevlist);  	if (ret)  		return ret; -	return perf_event__repipe_synth(NULL, event, NULL); +	return perf_event__repipe_synth(tool, event);  }  static int perf_event__repipe(struct perf_tool *tool,  			      union perf_event *event,  			      struct perf_sample *sample __maybe_unused, -			      struct machine *machine) +			      struct machine *machine __maybe_unused)  { -	return perf_event__repipe_synth(tool, event, machine); +	return perf_event__repipe_synth(tool, event);  }  typedef int (*inject_handler)(struct perf_tool *tool, @@ -119,7 +107,7 @@ static int perf_event__repipe_sample(struct perf_tool *tool,  	build_id__mark_dso_hit(tool, event, sample, evsel, machine); -	return perf_event__repipe_synth(tool, event, machine); +	return perf_event__repipe_synth(tool, event);  }  static int perf_event__repipe_mmap(struct perf_tool *tool, @@ -148,13 +136,14 @@ static int perf_event__repipe_fork(struct perf_tool *tool,  	return err;  } -static int perf_event__repipe_tracing_data(union perf_event *event, +static int perf_event__repipe_tracing_data(struct perf_tool *tool, +					   union perf_event *event,  					   struct perf_session *session)  {  	int err; -	perf_event__repipe_synth(NULL, event, NULL); -	err = perf_event__process_tracing_data(event, session); +	perf_event__repipe_synth(tool, event); +	err = perf_event__process_tracing_data(tool, event, session);  	return err;  } @@ -209,7 +198,7 @@ static int perf_event__inject_buildid(struct perf_tool *tool,  	cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; -	thread = machine__findnew_thread(machine, event->ip.pid); +	thread = machine__findnew_thread(machine, sample->pid, sample->pid);  	if (thread == NULL) {  		pr_err("problem processing %d event, skipping it.\n",  		       event->header.type); @@ -217,7 +206,7 @@ static int perf_event__inject_buildid(struct perf_tool *tool,  	}  	thread__find_addr_map(thread, machine, cpumode, MAP__FUNCTION, -			      event->ip.ip, &al); +			      sample->ip, &al);  	if (al.map != NULL) {  		if (!al.map->dso->hit) { @@ -312,7 +301,9 @@ found:  	sample_sw.period = sample->period;  	sample_sw.time	 = sample->time;  	perf_event__synthesize_sample(event_sw, evsel->attr.sample_type, -				      &sample_sw, false); +				      evsel->attr.sample_regs_user, +				      evsel->attr.read_format, &sample_sw, +				      false);  	build_id__mark_dso_hit(tool, event_sw, &sample_sw, evsel, machine);  	return perf_event__repipe(tool, event_sw, &sample_sw, machine);  } @@ -407,8 +398,8 @@ 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_tracing_data_synth, +			.tracing_data	= perf_event__repipe_op2_synth, +			.finished_round	= perf_event__repipe_op2_synth,  			.build_id	= perf_event__repipe_op2_synth,  		},  		.input_name  = "-",  | 
