Em Tue, Mar 12, 2019 at 02:10:33PM +0100, Jiri Olsa escreveu: > On Mon, Mar 11, 2019 at 10:30:42PM -0700, Song Liu wrote: > > SNIP > > > +/* purge data in bpf_progs.infos tree */ > > +static void perf_env__purge_bpf(struct perf_env *env) > > +{ > > + struct rb_root *root; > > + struct rb_node *next; > > + > > + down_write(&env->bpf_progs.lock); > > + > > + root = &env->bpf_progs.infos; > > + next = rb_first(root); > > + > > + while (next) { > > + struct bpf_prog_info_node *node; > > + > > + node = rb_entry(next, struct bpf_prog_info_node, rb_node); > > + next = rb_next(&node->rb_node); > > + rb_erase(&node->rb_node, root); > > + free(node); > > + } > > env->bpf_progs.infos_cnt = 0; ? > > but it's probably not needed given the current usage Better be safe than sorry, see the Andi's "perf, tools, stat: Avoid memory overrun with -r" :-) I'll add the infos_cnt = 0 here. > jirka > > > + up_write(&env->bpf_progs.lock); > > +} > > SNIP -- - Arnaldo