From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
To: Bastien Curutchet <bastien.curutchet@bootlin.com>
Cc: "Björn Töpel" <bjorn@kernel.org>,
"Magnus Karlsson" <magnus.karlsson@intel.com>,
"Jonathan Lemon" <jonathan.lemon@gmail.com>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Andrii Nakryiko" <andrii@kernel.org>,
"Martin KaFai Lau" <martin.lau@linux.dev>,
"Eduard Zingerman" <eddyz87@gmail.com>,
"Song Liu" <song@kernel.org>,
"Yonghong Song" <yonghong.song@linux.dev>,
"John Fastabend" <john.fastabend@gmail.com>,
"KP Singh" <kpsingh@kernel.org>,
"Stanislav Fomichev" <sdf@fomichev.me>,
"Hao Luo" <haoluo@google.com>, "Jiri Olsa" <jolsa@kernel.org>,
"Mykola Lysenko" <mykolal@fb.com>,
"Shuah Khan" <shuah@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
"Jakub Kicinski" <kuba@kernel.org>,
"Jesper Dangaard Brouer" <hawk@kernel.org>,
"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
"Alexis Lothore" <alexis.lothore@bootlin.com>,
netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH bpf-next v4 04/15] selftests/bpf: test_xsk: fix memory leak in testapp_stats_rx_dropped()
Date: Fri, 26 Sep 2025 13:47:33 +0200 [thread overview]
Message-ID: <aNZ9VWLgNGHQg1Tv@boxer> (raw)
In-Reply-To: <fd600cd5-062e-4806-9e8e-b7f6aacad242@bootlin.com>
On Fri, Sep 26, 2025 at 08:39:28AM +0200, Bastien Curutchet wrote:
> Hi Maciej,
>
> On 9/25/25 3:32 PM, Maciej Fijalkowski wrote:
> > On Wed, Sep 24, 2025 at 04:49:39PM +0200, Bastien Curutchet (eBPF Foundation) wrote:
> > > testapp_stats_rx_dropped() generates pkt_stream twice. The last
> > > generated is released by pkt_stream_restore_default() at the end of the
> > > test but we lose the pointer of the first pkt_stream.
> > >
> > > Release the 'middle' pkt_stream when it's getting replaced to prevent
> > > memory leaks.
> > >
> > > Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
> > > ---
> > > tools/testing/selftests/bpf/test_xsk.c | 7 +++++++
> > > 1 file changed, 7 insertions(+)
> > >
> > > diff --git a/tools/testing/selftests/bpf/test_xsk.c b/tools/testing/selftests/bpf/test_xsk.c
> > > index 8d7c38eb32ca3537cb019f120c3350ebd9f8c6bc..eb18288ea1e4aa1c9337d16333b7174ecaed0999 100644
> > > --- a/tools/testing/selftests/bpf/test_xsk.c
> > > +++ b/tools/testing/selftests/bpf/test_xsk.c
> > > @@ -536,6 +536,13 @@ static void pkt_stream_receive_half(struct test_spec *test)
> > > struct pkt_stream *pkt_stream = test->ifobj_tx->xsk->pkt_stream;
> > > u32 i;
> > > + if (test->ifobj_rx->xsk->pkt_stream != test->rx_pkt_stream_default)
> > > + /* Packet stream has already been replaced so we have to release this one.
> > > + * The newly created one will be freed by the restore_default() at the
> > > + * end of the test
> > > + */
> > > + pkt_stream_delete(test->ifobj_rx->xsk->pkt_stream);
> >
> > I don't see why this one is not addressed within test case
> > (testapp_stats_rx_dropped()) and other fix is (testapp_xdp_shared_umem()).
> >
>
> pkt_stream_receive_half() can be used by other tests. I thought it would be
So is pkt_stream_replace_half() and other routines that eventually call
pkt_stream_generate() and overwrite the pkt_stream, right?
It just feels odd to have a special treatment in one function and other
are left as-is just because currently we don't have another abusive test
case.
Maybe it's enough of bike-shedding here, just wanted to clarify on my POV.
In the end don't get me wrong here, this interface is a bit PITA for me
and thanks for whole effort!
> more convenient for people writing testapp_*() functions if they didn't have
> to worry about releasing these kind of pointer themselves.
>
> The same approach can't be used in testapp_xdp_shared_umem(), because we
> need to wait for the test to complete before releasing the pointers.
>
>
> --
> Bastien Curutchet, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
next prev parent reply other threads:[~2025-09-26 11:47 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-24 14:49 [PATCH bpf-next v4 00/15] selftests/bpf: Integrate test_xsk.c to test_progs framework Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 01/15] selftests/bpf: test_xsk: Split xskxceiver Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 02/15] selftests/bpf: test_xsk: Initialize bitmap before use Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 03/15] selftests/bpf: test_xsk: Fix __testapp_validate_traffic()'s return value Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 04/15] selftests/bpf: test_xsk: fix memory leak in testapp_stats_rx_dropped() Bastien Curutchet (eBPF Foundation)
2025-09-25 13:32 ` Maciej Fijalkowski
2025-09-26 6:39 ` Bastien Curutchet
2025-09-26 11:47 ` Maciej Fijalkowski [this message]
2025-09-27 11:19 ` Alexei Starovoitov
2025-09-29 8:57 ` Bastien Curutchet
2025-09-29 14:37 ` Maciej Fijalkowski
2025-09-29 16:04 ` Maciej Fijalkowski
2025-09-24 14:49 ` [PATCH bpf-next v4 05/15] selftests/bpf: test_xsk: fix memory leak in testapp_xdp_shared_umem() Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 06/15] selftests/bpf: test_xsk: Wrap test clean-up in functions Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 07/15] selftests/bpf: test_xsk: Release resources when swap fails Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 08/15] selftests/bpf: test_xsk: Add return value to init_iface() Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 09/15] selftests/bpf: test_xsk: Don't exit immediately when xsk_attach fails Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 10/15] selftests/bpf: test_xsk: Don't exit immediately when gettimeofday fails Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 11/15] selftests/bpf: test_xsk: Don't exit immediately when workers fail Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 12/15] selftests/bpf: test_xsk: Don't exit immediately if validate_traffic fails Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 13/15] selftests/bpf: test_xsk: Don't exit immediately on allocation failures Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 14/15] selftests/bpf: test_xsk: Isolate flaky tests Bastien Curutchet (eBPF Foundation)
2025-09-24 14:49 ` [PATCH bpf-next v4 15/15] selftests/bpf: test_xsk: Integrate test_xsk.c to test_progs framework Bastien Curutchet (eBPF Foundation)
2025-09-26 11:49 ` [PATCH bpf-next v4 00/15] selftests/bpf: " Maciej Fijalkowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aNZ9VWLgNGHQg1Tv@boxer \
--to=maciej.fijalkowski@intel.com \
--cc=alexis.lothore@bootlin.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bastien.curutchet@bootlin.com \
--cc=bjorn@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=hawk@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=jonathan.lemon@gmail.com \
--cc=kpsingh@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=magnus.karlsson@intel.com \
--cc=martin.lau@linux.dev \
--cc=mykolal@fb.com \
--cc=netdev@vger.kernel.org \
--cc=sdf@fomichev.me \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.