[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEf4BzbGk2xSGAkLEXKSg3NhrL28o+cmW9jTq2=EhggJEYT=5Q@mail.gmail.com>
Date: Fri, 26 Jun 2020 13:30:38 -0700
From: Andrii Nakryiko <andrii.nakryiko@...il.com>
To: "Daniel T. Lee" <danieltimlee@...il.com>
Cc: Daniel Borkmann <daniel@...earbox.net>,
Alexei Starovoitov <ast@...nel.org>,
Yonghong Song <yhs@...com>, Martin KaFai Lau <kafai@...com>,
Andrii Nakryiko <andriin@...com>,
Networking <netdev@...r.kernel.org>, bpf <bpf@...r.kernel.org>
Subject: Re: [PATCH 3/3] samples: bpf: refactor BPF map in map test with libbpf
On Fri, Jun 26, 2020 at 1:18 AM Daniel T. Lee <danieltimlee@...il.com> wrote:
>
> From commit 646f02ffdd49 ("libbpf: Add BTF-defined map-in-map
> support"), a way to define internal map in BTF-defined map has been
> added.
>
> Instead of using previous 'inner_map_idx' definition, the structure to
> be used for the inner map can be directly defined using array directive.
>
> __array(values, struct inner_map)
>
> This commit refactors map in map test program with libbpf by explicitly
> defining inner map with BTF-defined format.
>
> Signed-off-by: Daniel T. Lee <danieltimlee@...il.com>
> ---
Thanks for the clean up, looks good except that prog NULL check.
It also seems like this is the last use of bpf_map_def_legacy, do you
mind removing it as well?
> samples/bpf/Makefile | 2 +-
> samples/bpf/test_map_in_map_kern.c | 85 +++++++++++++++---------------
> samples/bpf/test_map_in_map_user.c | 53 +++++++++++++++++--
> 3 files changed, 91 insertions(+), 49 deletions(-)
>
[...]
>
> snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
> + obj = bpf_object__open_file(filename, NULL);
> + if (libbpf_get_error(obj)) {
this is right, but...
> + fprintf(stderr, "ERROR: opening BPF object file failed\n");
> + return 0;
> + }
>
> - if (load_bpf_file(filename)) {
> - printf("%s", bpf_log_buf);
> - return 1;
> + prog = bpf_object__find_program_by_name(obj, "trace_sys_connect");
> + if (libbpf_get_error(prog)) {
this is wrong. Just NULL check. libbpf APIs are not very consistent
with what they return, unfortunately.
> + printf("finding a prog in obj file failed\n");
> + goto cleanup;
> + }
> +
[...]
Powered by blists - more mailing lists