Andrii Nakryiko wrote: > Don't mark some instructions as jump points when there are actually no > jumps and instructions are just processed sequentially. Such case is > handled naturally by precision backtracking logic without the need to > update jump history. See get_prev_insn_idx(). It goes back linearly by > one instruction, unless current top of jmp_history is pointing to > current instruction. In such case we use `st->jmp_history[cnt - 1].prev_idx` > to find instruction from which we jumped to the current instruction > non-linearly. > > Also remove both jump and prune point marking for instruction right > after unconditional jumps, as program flow can get to the instruction > right after unconditional jump instruction only if there is a jump to > that instruction from somewhere else in the program. In such case we'll > mark such instruction as prune/jump point because it's a destination of > a jump. > > This change has no changes in terms of number of instructions or states > processes across Cilium and selftests programs. > > Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > --- Thanks. Acked-by: John Fastabend <john.fastabend@xxxxxxxxx>