[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ECE882BB-B86B-41CB-AF2A-336DA95A5A4D@fb.com>
Date: Tue, 28 Sep 2021 23:58:10 +0000
From: Song Liu <songliubraving@...com>
To: Kumar Kartikeya Dwivedi <memxor@...il.com>
CC: bpf <bpf@...r.kernel.org>, Alexei Starovoitov <ast@...nel.org>,
"Daniel Borkmann" <daniel@...earbox.net>,
Andrii Nakryiko <andrii@...nel.org>,
"Martin Lau" <kafai@...com>, Yonghong Song <yhs@...com>,
Jesper Dangaard Brouer <brouer@...hat.com>,
Toke Høiland-Jørgensen <toke@...hat.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: [PATCH bpf-next v5 11/12] bpf: selftests: Fix fd cleanup in
get_branch_snapshot
> On Sep 27, 2021, at 7:59 AM, Kumar Kartikeya Dwivedi <memxor@...il.com> wrote:
>
> Cleanup code uses while (cpu++ < cpu_cnt) for closing fds, which means
> it starts iterating from 1 for closing fds. If the first fd is -1, it
> skips over it and closes garbage fds (typically zero) in the remaining
> array. This leads to test failures for future tests when they end up
> storing fd 0 (as the slot becomes free due to close(0)) in ldimm64's BTF
> fd, ending up trying to match module BTF id with vmlinux.
>
> This was observed as spurious CI failure for the ksym_module_libbpf and
> module_attach tests. The test ends up closing fd 0 and breaking libbpf's
> assumption that module BTF fd will always be > 0, which leads to the
> kernel thinking that we are pointing to a BTF ID in vmlinux BTF.
>
> Cc: Song Liu <songliubraving@...com>
> Fixes: 025bd7c753aa (selftests/bpf: Add test for bpf_get_branch_snapshot)
> Signed-off-by: Kumar Kartikeya Dwivedi <memxor@...il.com>
Thanks for the fix!
Acked-by: Song Liu <songliubraving@...com>
> ---
> tools/testing/selftests/bpf/prog_tests/get_branch_snapshot.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/get_branch_snapshot.c b/tools/testing/selftests/bpf/prog_tests/get_branch_snapshot.c
> index f81db9135ae4..67e86f8d8677 100644
> --- a/tools/testing/selftests/bpf/prog_tests/get_branch_snapshot.c
> +++ b/tools/testing/selftests/bpf/prog_tests/get_branch_snapshot.c
> @@ -38,10 +38,9 @@ static int create_perf_events(void)
>
> static void close_perf_events(void)
> {
> - int cpu = 0;
> - int fd;
> + int cpu, fd;
>
> - while (cpu++ < cpu_cnt) {
> + for (cpu = 0; cpu < cpu_cnt; cpu++) {
> fd = pfd_array[cpu];
> if (fd < 0)
> break;
> --
> 2.33.0
>
Powered by blists - more mailing lists