On Thu, Sep 10, 2020 at 3:27 AM Quentin Monnet <quentin@xxxxxxxxxxxxx> wrote: > > When dumping outer maps or prog_array maps, and on lookup failure, > bpftool simply skips the entry with no error message. This is because > the kernel returns non-zero when no value is found for the provided key, > which frequently happen for those maps if they have not been filled. > > When such a case occurs, errno is set to ENOENT. It seems unlikely we > could receive other error codes at this stage (we successfully retrieved > map info just before), but to be on the safe side, let's skip the entry > only if errno was ENOENT, and not for the other errors. > > v3: New patch > > Signed-off-by: Quentin Monnet <quentin@xxxxxxxxxxxxx> > --- > tools/bpf/bpftool/map.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c > index c8159cb4fb1e..d8581d5e98a1 100644 > --- a/tools/bpf/bpftool/map.c > +++ b/tools/bpf/bpftool/map.c > @@ -240,8 +240,8 @@ print_entry_error(struct bpf_map_info *map_info, void *key, int lookup_errno) > * means there is no entry for that key. Do not print an error message > * in that case. > */ > - if (map_is_map_of_maps(map_info->type) || > - map_is_map_of_progs(map_info->type)) > + if ((map_is_map_of_maps(map_info->type) || > + map_is_map_of_progs(map_info->type)) && lookup_errno == ENOENT) > return; Ah, ok, you decided to split it out into a separate patch. Ok. Acked-by: Andrii Nakryiko <andriin@xxxxxx> > > if (json_output) { > -- > 2.25.1 >