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

Commit 53c76b0e authored by Adrian Hunter's avatar Adrian Hunter Committed by Arnaldo Carvalho de Melo
Browse files

perf auxtrace: Add option to synthesize events for transactions



Add AUX area tracing option 'x' to synthesize events for transactions.
This will be used by Intel PT to synthesize an event record for each TSX
start, commit or abort.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1430404667-10593-6-git-send-email-adrian.hunter@intel.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent e31f0d01
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -52,11 +52,12 @@ OPTIONS
		b	synthesize branches events
		c	synthesize branches events (calls only)
		r	synthesize branches events (returns only)
		x	synthesize transactions events
		e	synthesize error events
		d	create a debug log
		g	synthesize a call chain for instructions events
		g	synthesize a call chain (use with i or x)

	The default is all events i.e. the same as --itrace=ibe
	The default is all events i.e. the same as --itrace=ibxe

	In addition, the period (default 100000) for instructions events
	can be specified in units of:
@@ -67,8 +68,8 @@ OPTIONS
		us	microseconds
		ns	nanoseconds (default)

	Also the call chain size (default 16, max. 1024) for instructions
	events can be specified.
	Also the call chain size (default 16, max. 1024) for instructions or
	transactions events can be specified.

SEE ALSO
--------
+5 −4
Original line number Diff line number Diff line
@@ -331,11 +331,12 @@ OPTIONS
		b	synthesize branches events
		c	synthesize branches events (calls only)
		r	synthesize branches events (returns only)
		x	synthesize transactions events
		e	synthesize error events
		d	create a debug log
		g	synthesize a call chain for instructions events
		g	synthesize a call chain (use with i or x)

	The default is all events i.e. the same as --itrace=ibe
	The default is all events i.e. the same as --itrace=ibxe

	In addition, the period (default 100000) for instructions events
	can be specified in units of:
@@ -346,8 +347,8 @@ OPTIONS
		us	microseconds
		ns	nanoseconds (default)

	Also the call chain size (default 16, max. 1024) for instructions
	events can be specified.
	Also the call chain size (default 16, max. 1024) for instructions or
	transactions events can be specified.

	To disable decoding entirely, use --no-itrace.

+5 −4
Original line number Diff line number Diff line
@@ -235,11 +235,12 @@ OPTIONS
		b	synthesize branches events
		c	synthesize branches events (calls only)
		r	synthesize branches events (returns only)
		x	synthesize transactions events
		e	synthesize error events
		d	create a debug log
		g	synthesize a call chain for instructions events
		g	synthesize a call chain (use with i or x)

	The default is all events i.e. the same as --itrace=ibe
	The default is all events i.e. the same as --itrace=ibxe

	In addition, the period (default 100000) for instructions events
	can be specified in units of:
@@ -250,8 +251,8 @@ OPTIONS
		us	microseconds
		ns	nanoseconds (default)

	Also the call chain size (default 16, max. 1024) for instructions
	events can be specified.
	Also the call chain size (default 16, max. 1024) for instructions or
	transactions events can be specified.

	To disable decoding entirely, use --no-itrace.

+4 −1
Original line number Diff line number Diff line
@@ -888,6 +888,7 @@ void itrace_synth_opts__set_default(struct itrace_synth_opts *synth_opts)
{
	synth_opts->instructions = true;
	synth_opts->branches = true;
	synth_opts->transactions = true;
	synth_opts->errors = true;
	synth_opts->period_type = PERF_ITRACE_DEFAULT_PERIOD_TYPE;
	synth_opts->period = PERF_ITRACE_DEFAULT_PERIOD;
@@ -960,6 +961,9 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
		case 'b':
			synth_opts->branches = true;
			break;
		case 'x':
			synth_opts->transactions = true;
			break;
		case 'e':
			synth_opts->errors = true;
			break;
@@ -975,7 +979,6 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
			synth_opts->returns = true;
			break;
		case 'g':
			synth_opts->instructions = true;
			synth_opts->callchain = true;
			synth_opts->callchain_sz =
					PERF_ITRACE_DEFAULT_CALLCHAIN_SZ;
+2 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ enum itrace_period_type {
 *          because 'perf inject' will write it out
 * @instructions: whether to synthesize 'instructions' events
 * @branches: whether to synthesize 'branches' events
 * @transactions: whether to synthesize events for transactions
 * @errors: whether to synthesize decoder error events
 * @dont_decode: whether to skip decoding entirely
 * @log: write a decoding log
@@ -69,6 +70,7 @@ struct itrace_synth_opts {
	bool			inject;
	bool			instructions;
	bool			branches;
	bool			transactions;
	bool			errors;
	bool			dont_decode;
	bool			log;