Alexei Starovoitov
cbd3570086
bpf: verifier (add ability to receive verification log)
...
add optional attributes for BPF_PROG_LOAD syscall:
union bpf_attr {
struct {
...
__u32 log_level; /* verbosity level of eBPF verifier */
__u32 log_size; /* size of user buffer */
__aligned_u64 log_buf; /* user supplied 'char *buffer' */
};
};
when log_level > 0 the verifier will return its verification log in the user
supplied buffer 'log_buf' which can be used by program author to analyze why
verifier rejected given program.
'Understanding eBPF verifier messages' section of Documentation/networking/filter.txt
provides several examples of these messages, like the program:
BPF_ST_MEM(BPF_DW, BPF_REG_10, -8, 0),
BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
BPF_LD_MAP_FD(BPF_REG_1, 0),
BPF_CALL_FUNC(BPF_FUNC_map_lookup_elem),
BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 1),
BPF_ST_MEM(BPF_DW, BPF_REG_0, 4, 0),
BPF_EXIT_INSN(),
will be rejected with the following multi-line message in log_buf:
0: (7a) *(u64 *)(r10 -8) = 0
1: (bf) r2 = r10
2: (07) r2 += -8
3: (b7) r1 = 0
4: (85) call 1
5: (15) if r0 == 0x0 goto pc+1
R0=map_ptr R10=fp
6: (7a) *(u64 *)(r0 +4) = 0
misaligned access off 4 size 8
The format of the output can change at any time as verifier evolves.
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-09-26 15:05:15 -04:00
..
2014-07-15 09:34:19 +02:00
2013-09-08 14:34:22 -05:00
2014-07-09 14:14:27 -07:00
2014-09-09 16:31:30 +02:00
2014-08-20 15:13:08 +02:00
2014-06-25 19:28:43 +02:00
2014-06-25 19:28:43 +02:00
2014-05-08 12:43:03 -04:00
2014-01-14 16:44:21 +11:00
2014-02-27 13:51:29 +09:00
2014-01-16 17:24:11 -08:00
2014-07-21 11:33:41 -07:00
2013-08-02 12:33:54 -07:00
2014-01-07 13:50:28 +01:00
2014-07-10 11:06:00 +01:00
2014-01-08 13:05:13 -08:00
2014-09-26 15:05:15 -04:00
2014-07-01 10:48:05 -06:00
2014-06-28 13:48:44 -07:00
2014-05-19 09:38:24 +02:00
2014-04-22 21:42:27 -04:00
2014-03-20 14:55:18 +01:00
2013-08-28 19:26:38 -07:00
2014-07-30 17:21:05 -07:00
2013-11-09 18:20:22 -05:00
2014-01-21 23:46:27 -05:00
2014-01-23 16:36:55 -08:00
2013-08-20 16:53:58 -05:00
2013-09-16 18:20:24 -07:00
2014-08-05 16:35:54 -07:00
2014-09-05 12:12:20 -07:00
2013-12-03 15:35:52 +01:00
2014-03-13 19:07:42 +11:00
2014-08-08 15:57:31 -07:00
2014-01-17 11:12:06 +01:00
2013-08-03 10:40:23 -07:00
2013-08-16 22:05:14 -04:00
2014-04-22 21:27:57 -04:00
2013-07-27 20:24:36 +02:00
2014-09-19 17:15:31 -04:00
2014-04-01 17:08:43 +02:00
2014-07-22 16:37:43 +02:00
2013-11-28 18:26:30 -05:00
2014-05-14 10:04:34 +01:00
2013-10-25 17:14:03 -04:00
2013-11-03 23:20:14 -05:00
2014-04-16 14:10:36 -07:00
2014-07-09 16:41:36 -07:00
2013-09-03 22:11:44 -04:00
2014-01-15 17:00:40 -08:00
2013-12-11 12:57:55 -08:00
2013-10-03 15:36:38 -04:00
2013-08-02 12:33:54 -07:00
2014-08-27 22:59:39 -07:00
2014-04-27 19:08:06 -04:00
2014-09-09 11:29:55 -07:00
2014-07-29 11:39:50 -07:00
2013-08-13 15:10:22 -07:00
2013-08-21 12:21:45 -07:00
2014-09-19 17:15:32 -04:00
2014-02-27 15:59:09 -05:00
2014-08-06 15:25:01 -07:00
2014-02-26 15:51:00 -05:00
2014-09-08 14:58:11 -07:00
2013-10-15 10:36:01 +09:00
2013-08-26 16:37:08 -04:00
2014-07-01 12:16:24 -07:00
2014-09-23 12:09:27 -04:00
2014-08-08 15:57:32 -07:00
2013-09-24 10:35:19 +01:00
2014-05-30 21:01:11 +02:00
2014-08-05 09:58:11 +02:00
2014-05-23 16:28:53 -04:00
2014-04-03 16:21:06 -07:00
2013-11-11 21:56:51 -05:00
2013-11-06 23:32:59 -08:00
2013-12-04 14:59:20 -02:00
2014-08-08 15:57:31 -07:00
2013-11-27 11:03:38 -08:00
2014-02-07 15:30:34 -08:00
2014-03-04 13:51:06 -05:00
2014-01-20 14:45:33 -08:00
2014-01-20 14:44:50 -08:00
2014-06-02 17:58:55 -07:00
2014-08-05 16:35:54 -07:00
2013-12-22 18:02:43 -05:00
2014-07-15 16:12:01 -07:00
2014-01-07 23:57:25 +01:00
2013-11-28 18:16:43 -05:00
2014-05-20 00:06:04 +02:00
2014-01-23 16:36:55 -08:00
2013-10-28 15:37:56 -04:00
2014-08-26 11:16:01 +02:00
2014-06-13 10:53:49 -04:00
2014-09-15 23:28:14 -07:00
2013-11-28 18:16:43 -05:00
2014-01-25 11:17:34 -08:00
2014-06-09 12:21:04 +02:00
2014-02-17 07:18:19 +01:00
2013-10-29 17:33:17 -04:00
2014-01-06 15:13:01 -05:00
2014-01-23 16:36:55 -08:00
2014-04-07 16:35:52 -07:00
2014-04-30 04:18:57 -07:00
2014-03-21 14:21:13 -04:00
2014-08-05 16:41:22 -04:00
2014-01-20 14:44:17 -08:00
2014-01-16 09:27:17 +01:00
2014-07-16 14:40:04 -07:00
2014-07-18 12:13:40 -07:00
2014-04-25 10:08:48 -07:00
2014-07-17 18:23:35 -07:00
2014-07-20 14:33:23 -07:00
2014-06-06 16:08:14 -07:00
2014-03-03 15:58:03 -05:00
2013-11-19 19:07:21 +00:00
2014-07-01 12:16:24 -07:00
2014-02-26 17:08:40 -05:00
2014-02-14 16:09:43 -05:00
2014-01-20 14:44:05 -08:00
2014-06-25 18:03:41 -07:00
2014-04-26 12:13:24 -04:00
2014-05-23 16:28:53 -04:00
2014-04-01 18:27:33 +02:00
2014-07-21 14:30:42 -07:00
2013-11-28 18:16:43 -05:00
2014-03-04 15:38:05 -08:00
2014-08-25 10:40:06 -07:00
2014-04-16 18:20:02 -03:00
2014-07-25 19:27:51 -03:00
2014-04-16 18:27:08 -03:00
2014-05-13 13:48:29 -03:00
2014-05-25 12:47:55 -03:00
2014-08-05 15:28:48 +10:00
2014-07-25 19:26:14 -03:00
2014-07-01 10:51:01 -06:00
2013-08-02 12:33:54 -07:00
2013-12-11 09:25:20 -02:00
2014-08-29 16:28:16 -07:00
2014-03-07 08:12:37 +01:00
2013-11-26 11:09:08 +01:00
2013-11-26 11:09:09 +01:00