github.com/datadog/cilium@v1.6.12/bpf/probes/raw_map_val_adj.t (about)

     1  /* Tests for availability of kernel commits (4.9+):
     2   *
     3   * d2a4dd37f6b4 ("bpf: fix state equivalence") [** will appear in 4.9 stable]
     4   * e2d2afe15ed4 ("bpf: fix states equal logic for varlen access")
     5   * f23cc643f9ba ("bpf: fix range arithmetic for bpf map access")
     6   * 484611357c19 ("bpf: allow access into map value arrays")
     7   */
     8  	{
     9  		.emits	= "HAVE_MAP_VAL_ADJ",
    10  		.type	= BPF_PROG_TYPE_SCHED_CLS,
    11  		.insns	= {
    12  			BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
    13  			BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
    14  			BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0),
    15  			BPF_LD_MAP_FD(BPF_REG_1, 0),
    16  			BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
    17  			BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 6),
    18  			BPF_ALU64_IMM(BPF_ADD, BPF_REG_0, 8),
    19  			BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_0, 0),
    20  			BPF_JMP_IMM(BPF_JGT, BPF_REG_3, 1, 2),
    21  			BPF_MOV64_IMM(BPF_REG_0, 1),
    22  			BPF_EXIT_INSN(),
    23  			BPF_MOV64_IMM(BPF_REG_0, 2),
    24  			BPF_EXIT_INSN(),
    25  		},
    26  		.fixup_map = {
    27  			{
    28  				.off		= 3,
    29  				.type		= BPF_MAP_TYPE_HASH,
    30  				.size_key	= 8,
    31  				.size_val	= 16,
    32  			},
    33  		},
    34  		.warn = "Verifier is too old to detect dynamic map value access "
    35  			"after bpf_map_lookup_elem(). Recommendation is to run 4.9+ "
    36  			"kernels.",
    37  	},