Commit 3bdafdff authored by Adrian Hunter's avatar Adrian Hunter Committed by Arnaldo Carvalho de Melo
Browse files

perf auxtrace: Add itrace option to output ptwrite events



Add itrace option to output ptwrite events.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Link: http://lkml.kernel.org/r/1495786658-18063-24-git-send-email-adrian.hunter@intel.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 07fda552
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -3,13 +3,14 @@
		c	synthesize branches events (calls only)
		c	synthesize branches events (calls only)
		r	synthesize branches events (returns only)
		r	synthesize branches events (returns only)
		x	synthesize transactions events
		x	synthesize transactions events
		w	synthesize ptwrite events
		e	synthesize error events
		e	synthesize error events
		d	create a debug log
		d	create a debug log
		g	synthesize a call chain (use with i or x)
		g	synthesize a call chain (use with i or x)
		l	synthesize last branch entries (use with i or x)
		l	synthesize last branch entries (use with i or x)
		s       skip initial number of events
		s       skip initial number of events


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


	In addition, the period (default 100000) for instructions events
	In addition, the period (default 100000) for instructions events
	can be specified in units of:
	can be specified in units of:
@@ -26,8 +27,8 @@
	Also the number of last branch entries (default 64, max. 1024) for
	Also the number of last branch entries (default 64, max. 1024) for
	instructions or transactions events can be specified.
	instructions or transactions events can be specified.


	It is also possible to skip events generated (instructions, branches, transactions)
	It is also possible to skip events generated (instructions, branches, transactions,
	at the beginning. This is useful to ignore initialization code.
	ptwrite) at the beginning. This is useful to ignore initialization code.


	--itrace=i0nss1000000
	--itrace=i0nss1000000


+4 −0
Original line number Original line Diff line number Diff line
@@ -947,6 +947,7 @@ void itrace_synth_opts__set_default(struct itrace_synth_opts *synth_opts)
	synth_opts->instructions = true;
	synth_opts->instructions = true;
	synth_opts->branches = true;
	synth_opts->branches = true;
	synth_opts->transactions = true;
	synth_opts->transactions = true;
	synth_opts->ptwrites = true;
	synth_opts->errors = true;
	synth_opts->errors = true;
	synth_opts->period_type = PERF_ITRACE_DEFAULT_PERIOD_TYPE;
	synth_opts->period_type = PERF_ITRACE_DEFAULT_PERIOD_TYPE;
	synth_opts->period = PERF_ITRACE_DEFAULT_PERIOD;
	synth_opts->period = PERF_ITRACE_DEFAULT_PERIOD;
@@ -1030,6 +1031,9 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
		case 'x':
		case 'x':
			synth_opts->transactions = true;
			synth_opts->transactions = true;
			break;
			break;
		case 'w':
			synth_opts->ptwrites = true;
			break;
		case 'e':
		case 'e':
			synth_opts->errors = true;
			synth_opts->errors = true;
			break;
			break;
+2 −0
Original line number Original line Diff line number Diff line
@@ -59,6 +59,7 @@ enum itrace_period_type {
 * @instructions: whether to synthesize 'instructions' events
 * @instructions: whether to synthesize 'instructions' events
 * @branches: whether to synthesize 'branches' events
 * @branches: whether to synthesize 'branches' events
 * @transactions: whether to synthesize events for transactions
 * @transactions: whether to synthesize events for transactions
 * @ptwrites: whether to synthesize events for ptwrites
 * @errors: whether to synthesize decoder error events
 * @errors: whether to synthesize decoder error events
 * @dont_decode: whether to skip decoding entirely
 * @dont_decode: whether to skip decoding entirely
 * @log: write a decoding log
 * @log: write a decoding log
@@ -79,6 +80,7 @@ struct itrace_synth_opts {
	bool			instructions;
	bool			instructions;
	bool			branches;
	bool			branches;
	bool			transactions;
	bool			transactions;
	bool			ptwrites;
	bool			errors;
	bool			errors;
	bool			dont_decode;
	bool			dont_decode;
	bool			log;
	bool			log;