[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4f68d104-b96d-4726-a94d-1123765393c6@bootlin.com>
Date: Wed, 13 Nov 2024 15:23:42 +0100
From: Alexis Lothoré <alexis.lothore@...tlin.com>
To: Andrii Nakryiko <andrii@...nel.org>, Eduard Zingerman
<eddyz87@...il.com>, Mykola Lysenko <mykolal@...com>,
Alexei Starovoitov <ast@...nel.org>, Daniel Borkmann <daniel@...earbox.net>,
Martin KaFai Lau <martin.lau@...ux.dev>, Song Liu <song@...nel.org>,
Yonghong Song <yonghong.song@...ux.dev>,
John Fastabend <john.fastabend@...il.com>, KP Singh <kpsingh@...nel.org>,
Stanislav Fomichev <sdf@...ichev.me>, Hao Luo <haoluo@...gle.com>,
Jiri Olsa <jolsa@...nel.org>, Shuah Khan <shuah@...nel.org>
Cc: ebpf@...uxfoundation.org, Thomas Petazzoni
<thomas.petazzoni@...tlin.com>,
Bastien Curutchet <bastien.curutchet@...tlin.com>,
Petar Penkov <ppenkov@...gle.com>, bpf@...r.kernel.org,
linux-kselftest@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH bpf-next 07/10] selftests/bpf: migrate flow_dissector
namespace exclusivity test
On 11/13/24 14:53, Alexis Lothoré (eBPF Foundation) wrote:
[...]
> + ns = open_netns(TEST_NS);
> + bpf_prog_detach2(prog_fd, 0, BPF_FLOW_DISSECTOR);
> + close_netns(ns);
I would like to mention that I initially planned to directly delete the
namespace to perform the test cleanup, assuming it would be enough to consider
any non-root namespace flow_dissector to be removed. However I observed that it
made other tests dealing with flow_dissector starting to fail with -EEXIST,
despite all those tests being marked as "serial". I started examining this,
suspecting a real issue (a race between namespace deletion and flow dissector
attachment check, or a ns refcount issue) but before going further: is my
assumption right ? Should a mere namespace deletion be indeed enough to remove
the corresponding bpf flow dissector ? Or am I missing something ? If so I'll
keep examining this.
> +out_clean_ns:
> + remove_netns(TEST_NS);
> +out_destroy_skel:
> + bpf_flow__destroy(skel);
> +}
> +
> static int create_tap(const char *ifname)
> {
> struct ifreq ifr = {
>
--
Alexis Lothoré, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Powered by blists - more mailing lists