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

     1  /* Tests for availability of kernel commits (4.9.17+):
     2   *
     3   * 6760bf2ddde8 ("bpf: fix mark_reg_unknown_value for spilled regs on map value marking")
     4   * a08dd0da5307 ("bpf: fix regression on verifier pruning wrt map lookups")
     5   * d2a4dd37f6b4 ("bpf: fix state equivalence")
     6   * 57a09bf0a416 ("bpf: Detect identical PTR_TO_MAP_VALUE_OR_NULL registers")
     7   */
     8  	{
     9  		.emits	= "HAVE_MARK_MAP_VALS",
    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_MOV64_REG(BPF_REG_1, BPF_REG_10),
    18  			BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, -152),
    19  			BPF_STX_MEM(BPF_DW, BPF_REG_1, BPF_REG_0, 0),
    20  			BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2),
    21  			BPF_LDX_MEM(BPF_DW, BPF_REG_3, BPF_REG_1, 0),
    22  			BPF_ST_MEM(BPF_DW, BPF_REG_3, 0, 42),
    23  			BPF_EXIT_INSN(),
    24  		},
    25  		.fixup_map = {
    26  			{
    27  				.off		= 3,
    28  				.type		= BPF_MAP_TYPE_HASH,
    29  				.size_key	= 8,
    30  				.size_val	= 8,
    31  			},
    32  		},
    33  		.warn = "Verifier is too old to detect identical registers "
    34  			"with map value after bpf_map_lookup_elem(). Some "
    35  			"clang versions might generate code that spills such "
    36  			"registers to stack before a NULL test. Recommendation "
    37  			"is to run 4.9.17+ kernels.",
    38  	},