		i	synthesize instructions events
		b	synthesize branches events (branch misses for Arm SPE)
		c	synthesize branches events (calls only)
		r	synthesize branches events (returns only)
		x	synthesize transactions events
		w	synthesize ptwrite events
		p	synthesize power events (incl. PSB events for Intel PT)
		o	synthesize other events recorded due to the use
			of aux-output (refer to perf record)
		I	synthesize interrupt or similar (asynchronous) events
			(e.g. Intel PT Event Trace)
		e	synthesize error events
		d	create a debug log
		f	synthesize first level cache events
		m	synthesize last level cache events
		M	synthesize memory events
		t	synthesize TLB events
		a	synthesize remote access events
		g	synthesize a call chain (use with i or x)
		G	synthesize a call chain on existing event records
		l	synthesize last branch entries (use with i or x)
		L	synthesize last branch entries on existing event records
		s       skip initial number of events
		q	quicker (less detailed) decoding
		A	approximate IPC
		Z	prefer to ignore timestamps (so-called "timeless" decoding)

	The default is all events i.e. the same as --itrace=ibxwpe,
	except for perf script where it is --itrace=ce

	In addition, the period (default 100000, except for perf script where it is 1)
	for instructions events can be specified in units of:

		i	instructions
		t	ticks
		ms	milliseconds
		us	microseconds
		ns	nanoseconds (default)

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

	Also the number of last branch entries (default 64, max. 1024) for
	instructions or transactions events can be specified.

	Similar to options g and l, size may also be specified for options G and L.
	On x86, note that G and L work poorly when data has been recorded with
	large PEBS. Refer linkperf:perf-intel-pt[1] man page for details.

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

	--itrace=i0nss1000000

	skips the first million instructions.

	The 'e' option may be followed by flags which affect what errors will or
	will not be reported. Each flag must be preceded by either '+' or '-'.
	The flags are:
		o	overflow
		l	trace data lost

	If supported, the 'd' option may be followed by flags which affect what
	debug messages will or will not be logged. Each flag must be preceded
	by either '+' or '-'. The flags are:
		a	all perf events
		e	output only on errors (size configurable - see linkperf:perf-config[1])
		o	output to stdout

	If supported, the 'q' option may be repeated to increase the effect.
