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

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

perf intel-pt: Re-factor TIP cases in intel_pt_walk_to_ip



To make it easier to add new code for different TIP cases, separate each
case.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/20190520113728.14389-11-adrian.hunter@intel.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 9bc668e3
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -2128,18 +2128,29 @@ static int intel_pt_walk_to_ip(struct intel_pt_decoder *decoder)
		switch (decoder->packet.type) {
		case INTEL_PT_TIP_PGD:
			decoder->continuous_period = false;
			__fallthrough;
			decoder->pge = false;
			if (intel_pt_have_ip(decoder))
				intel_pt_set_ip(decoder);
			if (!decoder->ip)
				break;
			decoder->state.type |= INTEL_PT_TRACE_END;
			return 0;

		case INTEL_PT_TIP_PGE:
		case INTEL_PT_TIP:
			decoder->pge = decoder->packet.type != INTEL_PT_TIP_PGD;
			decoder->pge = true;
			if (intel_pt_have_ip(decoder))
				intel_pt_set_ip(decoder);
			if (!decoder->ip)
				break;
			if (decoder->packet.type == INTEL_PT_TIP_PGE)
			decoder->state.type |= INTEL_PT_TRACE_BEGIN;
			if (decoder->packet.type == INTEL_PT_TIP_PGD)
				decoder->state.type |= INTEL_PT_TRACE_END;
			return 0;

		case INTEL_PT_TIP:
			decoder->pge = true;
			if (intel_pt_have_ip(decoder))
				intel_pt_set_ip(decoder);
			if (!decoder->ip)
				break;
			return 0;

		case INTEL_PT_FUP: