Re: [PATCH bpf-next] selftests/bpf: Fix bpftool synctypes checking failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2022-10-26 09:30 UTC-0700 ~ Yonghong Song <yhs@xxxxxx>
> kernel-patches/bpf failed with error:
>   Running bpftool checks...
>   Comparing /data/users/ast/net-next/tools/include/uapi/linux/bpf.h (bpf_map_type) and
>             /data/users/ast/net-next/tools/bpf/bpftool/map.c (do_help() TYPE):
>             {'cgroup_storage_deprecated', 'cgroup_storage'}
>   Comparing /data/users/ast/net-next/tools/include/uapi/linux/bpf.h (bpf_map_type) and
>             /data/users/ast/net-next/tools/bpf/bpftool/Documentation/bpftool-map.rst (TYPE):
>             {'cgroup_storage_deprecated', 'cgroup_storage'}
> The selftests/bpf/test_bpftool_synctypes.py runs checking in the above.
> 
> The failure is introduced by Commit c4bcfb38a95e("bpf: Implement cgroup storage available
> to non-cgroup-attached bpf progs"). The commit introduced BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED
> which has the same enum value as BPF_MAP_TYPE_CGROUP_STORAGE.
> 
> In test_bpftool_synctypes.py, one test is to compare uapi bpf.h map types and
> bpftool supported maps. The tool picks 'cgroup_storage_deprecated' from bpf.h
> while bpftool supported map is displayed as 'cgroup_storage'. The test failure
> can be fixed by explicitly replacing 'cgroup_storage_deprecated' with 'cgroup_storage'
> in uapi bpf.h map types.
> 
> Signed-off-by: Yonghong Song <yhs@xxxxxx>
> ---
>  tools/testing/selftests/bpf/test_bpftool_synctypes.py | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/tools/testing/selftests/bpf/test_bpftool_synctypes.py b/tools/testing/selftests/bpf/test_bpftool_synctypes.py
> index a6410bebe603..9fe4c9336c6f 100755
> --- a/tools/testing/selftests/bpf/test_bpftool_synctypes.py
> +++ b/tools/testing/selftests/bpf/test_bpftool_synctypes.py
> @@ -501,6 +501,14 @@ def main():
>      source_map_types = set(bpf_info.get_map_type_map().values())
>      source_map_types.discard('unspec')
>  
> +    # BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED and BPF_MAP_TYPE_CGROUP_STORAGE
> +    # share the same enum value and source_map_types picks
> +    # BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED/cgroup_storage_deprecated.
> +    # Replace 'cgroup_storage_deprecated' with 'cgroup_storage'
> +    # so it aligns with what `bpftool map help` shows.
> +    source_map_types.remove('cgroup_storage_deprecated')
> +    source_map_types.add('cgroup_storage')
> +
>      help_map_types = map_info.get_map_help()
>      help_map_options = map_info.get_options()
>      map_info.close()

It does fix the script. Thanks!

If anyone wonders about the difference about .discard() (used just
above) and .remove(), the latter returns an error if the element to
remove is not present in the set. Here we do expect to find it, so
.remove() looks good.

Reviewed-by: Quentin Monnet <quentin@xxxxxxxxxxxxx>



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux