diff options
Diffstat (limited to 'tools/perf/builtin-script.c')
| -rw-r--r-- | tools/perf/builtin-script.c | 25 | 
1 files changed, 18 insertions, 7 deletions
| diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 7ca238277d83..69394ac0a20d 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -62,6 +62,9 @@  #include "perf.h"  #include <linux/ctype.h> +#ifdef HAVE_LIBTRACEEVENT +#include <traceevent/event-parse.h> +#endif  static char const		*script_name;  static char const		*generate_script_lang; @@ -2049,7 +2052,7 @@ static void perf_sample__fprint_metric(struct perf_script *script,  	u64 val;  	if (!evsel->stats) -		evlist__alloc_stats(script->session->evlist, false); +		evlist__alloc_stats(&stat_config, script->session->evlist, /*alloc_raw=*/false);  	if (evsel_script(leader)->gnum++ == 0)  		perf_stat__reset_shadow_stats();  	val = sample->period * evsel->scale; @@ -2154,12 +2157,12 @@ static void process_event(struct perf_script *script,  		perf_sample__fprintf_bts(sample, evsel, thread, al, addr_al, machine, fp);  		return;  	} - +#ifdef HAVE_LIBTRACEEVENT  	if (PRINT_FIELD(TRACE) && sample->raw_data) {  		event_format__fprintf(evsel->tp_format, sample->cpu,  				      sample->raw_data, sample->raw_size, fp);  	} - +#endif  	if (attr->type == PERF_TYPE_SYNTH && PRINT_FIELD(SYNTH))  		perf_sample__fprintf_synth(sample, evsel, fp); @@ -2230,7 +2233,7 @@ static void process_event(struct perf_script *script,  	if (PRINT_FIELD(METRIC))  		perf_sample__fprint_metric(script, thread, evsel, sample, fp); -	if (verbose) +	if (verbose > 0)  		fflush(fp);  } @@ -2283,8 +2286,10 @@ static void process_stat_interval(u64 tstamp)  static void setup_scripting(void)  { +#ifdef HAVE_LIBTRACEEVENT  	setup_perl_scripting();  	setup_python_scripting(); +#endif  }  static int flush_scripting(void) @@ -3632,7 +3637,7 @@ static int set_maps(struct perf_script *script)  	perf_evlist__set_maps(&evlist->core, script->cpus, script->threads); -	if (evlist__alloc_stats(evlist, true)) +	if (evlist__alloc_stats(&stat_config, evlist, /*alloc_raw=*/true))  		return -ENOMEM;  	script->allocated = true; @@ -3784,7 +3789,9 @@ int cmd_script(int argc, const char **argv)  			.fork		 = perf_event__process_fork,  			.attr		 = process_attr,  			.event_update   = perf_event__process_event_update, +#ifdef HAVE_LIBTRACEEVENT  			.tracing_data	 = perf_event__process_tracing_data, +#endif  			.feature	 = process_feature_event,  			.build_id	 = perf_event__process_build_id,  			.id_index	 = perf_event__process_id_index, @@ -4215,6 +4222,7 @@ script_found:  	else  		symbol_conf.use_callchain = false; +#ifdef HAVE_LIBTRACEEVENT  	if (session->tevent.pevent &&  	    tep_set_function_resolver(session->tevent.pevent,  				      machine__resolve_kernel_addr, @@ -4223,7 +4231,7 @@ script_found:  		err = -1;  		goto out_delete;  	} - +#endif  	if (generate_script_lang) {  		struct stat perf_stat;  		int input; @@ -4259,9 +4267,12 @@ script_found:  			err = -ENOENT;  			goto out_delete;  		} - +#ifdef HAVE_LIBTRACEEVENT  		err = scripting_ops->generate_script(session->tevent.pevent,  						     "perf-script"); +#else +		err = scripting_ops->generate_script(NULL, "perf-script"); +#endif  		goto out_delete;  	} |