Edward Cree
dc503a8ad9
bpf/verifier: track liveness for pruning
...
State of a register doesn't matter if it wasn't read in reaching an exit;
a write screens off all reads downstream of it from all explored_states
upstream of it.
This allows us to prune many more branches; here are some processed insn
counts for some Cilium programs:
Program before after
bpf_lb_opt_-DLB_L3.o 6515 3361
bpf_lb_opt_-DLB_L4.o 8976 5176
bpf_lb_opt_-DUNKNOWN.o 2960 1137
bpf_lxc_opt_-DDROP_ALL.o 95412 48537
bpf_lxc_opt_-DUNKNOWN.o 141706 78718
bpf_netdev.o 24251 17995
bpf_overlay.o 10999 9385
The runtime is also improved; here are 'time' results in ms:
Program before after
bpf_lb_opt_-DLB_L3.o 24 6
bpf_lb_opt_-DLB_L4.o 26 11
bpf_lb_opt_-DUNKNOWN.o 11 2
bpf_lxc_opt_-DDROP_ALL.o 1288 139
bpf_lxc_opt_-DUNKNOWN.o 1768 234
bpf_netdev.o 62 31
bpf_overlay.o 15 13
Signed-off-by: Edward Cree <ecree@solarflare.com >
Acked-by: Daniel Borkmann <daniel@iogearbox.net >
Signed-off-by: David S. Miller <davem@davemloft.net >
2017-08-15 16:32:33 -07:00
..
2017-08-01 16:46:45 +02:00
2017-08-01 16:46:44 +02:00
2017-07-12 10:04:56 -07:00
2017-07-13 15:58:02 -04:00
2017-07-11 09:55:47 -07:00
2017-08-02 10:44:09 -07:00
2017-08-09 16:28:45 -07:00
2017-08-02 10:26:42 +02:00
2017-07-27 13:43:22 +01:00
2017-08-07 15:26:34 +02:00
2017-08-01 10:07:50 -07:00
2017-07-27 00:05:22 -07:00
2017-08-03 21:37:30 -07:00
2017-07-13 13:56:24 -07:00
2017-07-22 08:55:16 -07:00
2017-07-12 16:26:05 -07:00
2017-07-10 16:32:34 -07:00
2017-07-17 09:48:06 -07:00
2017-08-15 16:32:33 -07:00
2017-07-17 13:37:56 -07:00
2017-08-08 17:51:34 -07:00
2017-07-10 16:32:34 -07:00
2017-07-10 16:32:34 -07:00
2017-07-14 12:37:41 -07:00
2017-07-19 08:55:18 -07:00
2017-07-19 08:55:18 -07:00
2017-07-14 13:12:32 -07:00
2017-07-26 21:51:25 -04:00
2017-08-02 17:16:12 -07:00
2017-07-12 16:26:00 -07:00
2017-07-19 08:55:18 -07:00
2017-07-26 15:55:44 -04:00
2017-07-19 08:55:18 -07:00
2017-08-07 15:26:34 +02:00
2017-07-14 16:09:55 -03:00
2017-07-20 16:09:10 +02:00
2017-07-29 23:23:44 -07:00
2017-07-12 16:26:01 -07:00
2017-07-10 16:32:35 -07:00
2017-07-17 09:48:06 -07:00
2017-07-19 08:55:18 -07:00
2017-07-20 09:27:29 -04:00
2017-07-12 13:32:46 +02:00
2017-07-12 16:26:03 -07:00
2017-07-15 12:00:42 -07:00
2017-07-31 17:33:53 +02:00
2017-08-07 11:39:22 -07:00
2017-07-10 16:32:34 -07:00
2017-07-19 08:55:18 -07:00
2017-08-07 11:39:22 -07:00
2017-07-27 15:40:02 +02:00
2017-07-17 09:22:34 -07:00
2017-07-12 16:25:59 -07:00
2017-07-12 16:26:00 -07:00
2017-07-19 08:55:18 -07:00
2017-08-02 16:34:47 -07:00
2017-08-02 22:41:02 +02:00
2017-07-19 15:33:50 -07:00
2017-07-19 08:55:18 -07:00
2017-07-12 16:26:04 -07:00
2017-08-02 16:34:46 -07:00
2017-07-19 08:55:18 -07:00
2017-08-01 15:26:18 -07:00
2017-07-24 13:52:59 -07:00
2017-08-13 19:56:07 -07:00
2017-07-17 17:01:10 +02:00
2017-07-13 16:00:15 -04:00
2017-07-13 16:00:12 -04:00
2017-07-21 11:51:19 -04:00
2017-07-13 17:12:07 -04:00
2017-08-01 16:28:55 -04:00
2017-07-12 16:26:02 -07:00
2017-07-25 18:05:25 +02:00
2017-07-25 17:58:32 +02:00
2017-08-02 17:16:13 -07:00
2017-08-06 20:55:29 -07:00
2017-08-06 20:55:29 -07:00
2017-08-01 15:22:55 -07:00
2017-07-15 12:44:02 -07:00
2017-07-12 23:11:23 +02:00
2017-07-19 08:55:18 -07:00
2017-08-03 09:45:47 -07:00
2017-08-07 14:16:22 -07:00
2017-07-19 08:55:18 -07:00
2017-08-06 20:55:29 -07:00
2017-08-09 16:49:17 -07:00
2017-07-12 16:26:03 -07:00
2017-08-03 21:37:29 -07:00
2017-07-15 12:00:42 -07:00
2017-08-07 14:09:48 -07:00
2017-07-19 08:55:18 -07:00
2017-08-06 21:25:10 -07:00
2017-08-08 17:51:34 -07:00
2017-07-20 09:27:29 -04:00
2017-07-19 08:55:18 -07:00
2017-07-24 17:50:37 +02:00
2017-07-26 13:30:23 -06:00
2017-07-17 09:52:58 -07:00
2017-07-25 11:17:02 +02:00
2017-07-25 13:28:56 -04:00