Re: [PATCH v6 perf,bpf 08/15] perf, bpf: save btf in a rbtree in perf_env

From: Jiri Olsa
Date: Thu Mar 07 2019 - 09:05:46 EST


On Tue, Mar 05, 2019 at 11:13:52PM -0800, Song Liu wrote:

SNIP

> /* purge data in bpf_progs.infos tree */
> static void perf_env__purge_bpf(struct perf_env *env)
> {
> @@ -82,6 +133,19 @@ static void perf_env__purge_bpf(struct perf_env *env)
> rb_erase_init(&node->rb_node, root);
> free(node);
> }
> +
> + root = &env->bpf_progs.btfs;
> + next = rb_first(root);
> +
> + while (next) {
> + struct btf_node *node;
> +
> + node = rb_entry(next, struct btf_node, rb_node);
> + next = rb_next(&node->rb_node);
> + rb_erase_init(&node->rb_node, root);

hum rb_erase should be enough when we are removingfreeing the node right
after.. also for the struct bpf_prog_info_node up

jirka

> + free(node);
> + }

SNIP