From: Jakub Kicinski <jakub.kicin...@netronome.com> Date: Mon, 9 Oct 2017 10:30:08 -0700
> This set started off as simple extraction of eBPF verifier's instruction > printer into a separate file but evolved into removal of global state. > The purpose of moving instruction printing code is to be able to reuse it > from the bpftool. > > As far as the global verifier lock goes, this set removes the global > variables relating to the log buffer, makes the one-time init done > by bpf_get_skb_set_tunnel_proto() not depend on any external locking, > and performs verifier log writeback as data is produced removing the need > for allocating a potentially large temporary buffer. > > The final step of actually removing the verifier lock is left to someone > more competent and self-confident :) > > Note that struct bpf_verifier_env is just 40B under two pages now, > we should probably switch to vzalloc() when it's expanded again... > > v2: > - add a selftest; > - use env buffer and flush on every print (Alexei); > - handle kernel log allocation failures (Daniel); > - put the env log members into a struct (Daniel). Looks great, series applied, thanks Jakub.