Re: [PATCH] perf intel-pt: Add a config for max loops without consuming a packet

From: Andi Kleen
Date: Thu Jul 01 2021 - 13:54:57 EST

On 7/1/2021 10:51 AM, Adrian Hunter wrote:
The Intel PT decoder limits the number of unconditional branches (e.g.
jmps) decoded without consuming any trace packets. Generally, a loop
needs a conditional branch which generates a TNT packet, whereas a
"ret" instruction will generate a TIP or TNT packet. So exceeding
the limit is assumed to be a never-ending loop, which can happen if
there has been a decoding error putting the decoder at the wrong place in
the code.

Up until now, the limit of 10000 has been enough but some analytic
purposes have been reported to exceed that.

Increase the limit to 100000, and make it configurable via perf config
intel-pt.max-loops. Also amend the "Never-ending loop" message to
mention the configuration entry.

Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>

Thanks. That is useful.

Reviewed-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>