Re: [PATCH v3 net-next 00/12] bpf: rewrite value tracking in verifier

From: Edward Cree
Date: Thu Jul 06 2017 - 10:07:59 EST


On 04/07/17 20:22, Edward Cree wrote:
> I don't know why test_l4lb has to process _fewer_ insns with my patches;
> if anything I'm worrying that I may be incorrectly pruning branches.
> (I've spotted a possible bug in that I'm not looking at 'id' which,
> although it doesn't have to match, if two regs in the old state had the
> same id as each other, then those regs in the new state have to have
> the same id as each other too.)
I've now fixed that bug, and also changing it to not fill in 'id' on pointers
other than PTR_TO_PACKET when doing arithmetic (because it's only used for
'range' sharing and only PTR_TO_PACKET have that. Of course
PTR_TO_MAP_VALUE_OR_NULL still use id, but they don't get it from arithmetic).
Changes will be in next version of patch series, but for now:
Program net-next short full new
test_pkt_access 78 79 79 79
test_xdp 386 411 407 389
test_l4lb 6438 4154 4154 4062
test_tcp_estats 435 436 435 435
test_bpf_obj_id 8 8 8 8
test_pkt_md_access 41 42 42 42
As you can see, the #insns has gone down even further.

-Ed