Message ID | 20211216153336.GA30454@Mem (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Stephen Hemminger |
Headers | show |
Series | [iproute2] lib/bpf: fix verbose flag when using libbpf | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On Thu, Dec 16, 2021 at 04:33:36PM +0100, Paul Chaignon wrote: > Since commit 6d61a2b55799 ("lib: add libbpf support"), passing the > verbose flag to tc filter doesn't dump the verifier logs anymore in case > of successful loading. > > This commit fixes it by setting the log_level attribute before loading. > To that end, we need to call bpf_object__load_xattr directly instead of > relying on bpf_object__load. > > Fixes: 6d61a2b55799 ("lib: add libbpf support") > Signed-off-by: Paul Chaignon <paul@isovalent.com> > --- > lib/bpf_libbpf.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/lib/bpf_libbpf.c b/lib/bpf_libbpf.c > index dbec2cb5..b992a62c 100644 > --- a/lib/bpf_libbpf.c > +++ b/lib/bpf_libbpf.c > @@ -246,6 +246,7 @@ static int handle_legacy_maps(struct bpf_object *obj) > > static int load_bpf_object(struct bpf_cfg_in *cfg) > { > + struct bpf_object_load_attr attr = {}; > struct bpf_program *p, *prog = NULL; > struct bpf_object *obj; > char root_path[PATH_MAX]; > @@ -302,7 +303,11 @@ static int load_bpf_object(struct bpf_cfg_in *cfg) > if (ret) > goto unload_obj; > > - ret = bpf_object__load(obj); > + attr.obj = obj; > + if (cfg->verbose) { > + attr.log_level = 2; > + } nit: no need the curly braces when this is only 1 line > + ret = bpf_object__load_xattr(&attr); > if (ret) > goto unload_obj; > Thanks for the fixes. Acked-by: Hangbin Liu <haliu@redhat.com>
diff --git a/lib/bpf_libbpf.c b/lib/bpf_libbpf.c index dbec2cb5..b992a62c 100644 --- a/lib/bpf_libbpf.c +++ b/lib/bpf_libbpf.c @@ -246,6 +246,7 @@ static int handle_legacy_maps(struct bpf_object *obj) static int load_bpf_object(struct bpf_cfg_in *cfg) { + struct bpf_object_load_attr attr = {}; struct bpf_program *p, *prog = NULL; struct bpf_object *obj; char root_path[PATH_MAX]; @@ -302,7 +303,11 @@ static int load_bpf_object(struct bpf_cfg_in *cfg) if (ret) goto unload_obj; - ret = bpf_object__load(obj); + attr.obj = obj; + if (cfg->verbose) { + attr.log_level = 2; + } + ret = bpf_object__load_xattr(&attr); if (ret) goto unload_obj;
Since commit 6d61a2b55799 ("lib: add libbpf support"), passing the verbose flag to tc filter doesn't dump the verifier logs anymore in case of successful loading. This commit fixes it by setting the log_level attribute before loading. To that end, we need to call bpf_object__load_xattr directly instead of relying on bpf_object__load. Fixes: 6d61a2b55799 ("lib: add libbpf support") Signed-off-by: Paul Chaignon <paul@isovalent.com> --- lib/bpf_libbpf.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)