Files
linux/include/linux
Martin KaFai Lau d9762e84ed bpf: verbose log bpf_line_info in verifier
This patch adds bpf_line_info during the verifier's verbose.
It can give error context for debug purpose.

~~~~~~~~~~
Here is the verbose log for backedge:
	while (a) {
		a += bpf_get_smp_processor_id();
		bpf_trace_printk(fmt, sizeof(fmt), a);
	}

~> bpftool prog load ./test_loop.o /sys/fs/bpf/test_loop type tracepoint
13: while (a) {
3: a += bpf_get_smp_processor_id();
back-edge from insn 13 to 3

~~~~~~~~~~
Here is the verbose log for invalid pkt access:
Modification to test_xdp_noinline.c:

	data = (void *)(long)xdp->data;
	data_end = (void *)(long)xdp->data_end;
/*
	if (data + 4 > data_end)
		return XDP_DROP;
*/
	*(u32 *)data = dst->dst;

~> bpftool prog load ./test_xdp_noinline.o /sys/fs/bpf/test_xdp_noinline type xdp
; data = (void *)(long)xdp->data;
224: (79) r2 = *(u64 *)(r10 -112)
225: (61) r2 = *(u32 *)(r2 +0)
; *(u32 *)data = dst->dst;
226: (63) *(u32 *)(r2 +0) = r1
invalid access to packet, off=0 size=4, R2(id=0,off=0,r=0)
R2 offset is outside of the packet

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2018-12-14 14:17:34 -08:00
..
2018-11-14 10:56:33 -08:00
2018-10-18 15:41:21 -07:00
2018-10-16 11:13:50 +02:00
2018-10-31 19:24:21 +01:00
2018-11-01 19:59:53 -06:00
2018-10-19 13:24:31 -07:00
2018-10-26 16:26:32 -07:00
2018-10-21 10:46:33 -04:00
2018-12-07 12:59:08 -08:00
2018-10-09 07:50:41 +02:00
2018-10-31 08:54:14 -07:00
2018-10-17 13:56:58 -07:00
2018-10-21 10:46:39 -04:00
2018-10-26 16:26:35 -07:00
2018-10-08 22:53:10 +11:00
2018-10-11 09:16:44 -07:00
2018-10-24 00:41:07 +01:00
2018-11-05 16:38:10 -05:00