diff options
Diffstat (limited to 'tools/perf/builtin-lock.c')
| -rw-r--r-- | tools/perf/builtin-lock.c | 32 | 
1 files changed, 19 insertions, 13 deletions
diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c index ce3bfb48b26f..ff98652484a7 100644 --- a/tools/perf/builtin-lock.c +++ b/tools/perf/builtin-lock.c @@ -1,3 +1,5 @@ +#include <errno.h> +#include <inttypes.h>  #include "builtin.h"  #include "perf.h" @@ -26,6 +28,7 @@  #include <linux/list.h>  #include <linux/hash.h> +#include <linux/kernel.h>  static struct perf_session *session; @@ -858,6 +861,7 @@ static int __cmd_report(bool display_info)  	struct perf_tool eops = {  		.sample		 = process_sample_event,  		.comm		 = perf_event__process_comm, +		.namespaces	 = perf_event__process_namespaces,  		.ordered_events	 = true,  	};  	struct perf_data_file file = { @@ -940,34 +944,36 @@ static int __cmd_record(int argc, const char **argv)  	BUG_ON(i != rec_argc); -	ret = cmd_record(i, rec_argv, NULL); +	ret = cmd_record(i, rec_argv);  	free(rec_argv);  	return ret;  } -int cmd_lock(int argc, const char **argv, const char *prefix __maybe_unused) +int cmd_lock(int argc, const char **argv)  { -	const struct option info_options[] = { -	OPT_BOOLEAN('t', "threads", &info_threads, -		    "dump thread list in perf.data"), -	OPT_BOOLEAN('m', "map", &info_map, -		    "map of lock instances (address:name table)"), -	OPT_BOOLEAN('f', "force", &force, "don't complain, do it"), -	OPT_END() -	};  	const struct option lock_options[] = {  	OPT_STRING('i', "input", &input_name, "file", "input file name"),  	OPT_INCR('v', "verbose", &verbose, "be more verbose (show symbol address, etc)"),  	OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace, "dump raw trace in ASCII"), +	OPT_BOOLEAN('f', "force", &force, "don't complain, do it"),  	OPT_END()  	}; + +	const struct option info_options[] = { +	OPT_BOOLEAN('t', "threads", &info_threads, +		    "dump thread list in perf.data"), +	OPT_BOOLEAN('m', "map", &info_map, +		    "map of lock instances (address:name table)"), +	OPT_PARENT(lock_options) +	}; +  	const struct option report_options[] = {  	OPT_STRING('k', "key", &sort_key, "acquired",  		    "key for sorting (acquired / contended / avg_wait / wait_total / wait_max / wait_min)"), -	OPT_BOOLEAN('f', "force", &force, "don't complain, do it"),  	/* TODO: type */ -	OPT_END() +	OPT_PARENT(lock_options)  	}; +  	const char * const info_usage[] = {  		"perf lock info [<options>]",  		NULL @@ -1006,7 +1012,7 @@ int cmd_lock(int argc, const char **argv, const char *prefix __maybe_unused)  		rc = __cmd_report(false);  	} else if (!strcmp(argv[0], "script")) {  		/* Aliased to 'perf script' */ -		return cmd_script(argc, argv, prefix); +		return cmd_script(argc, argv);  	} else if (!strcmp(argv[0], "info")) {  		if (argc) {  			argc = parse_options(argc, argv,  | 
