Re: [PATCH net-next v3 4/4] selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy benchmarking

From: Willem de Bruijn
Date: Tue Jan 31 2023 - 17:29:28 EST


On Tue, Jan 31, 2023 at 5:16 PM Andrei Gherzan
<andrei.gherzan@xxxxxxxxxxxxx> wrote:
>
> On 23/01/31 04:51PM, Willem de Bruijn wrote:
> > On Tue, Jan 31, 2023 at 4:01 PM Andrei Gherzan
> > <andrei.gherzan@xxxxxxxxxxxxx> wrote:
> > >
> > > The test tool can check that the zerocopy number of completions value is
> > > valid taking into consideration the number of datagram send calls. This can
> > > catch the system into a state where the datagrams are still in the system
> > > (for example in a qdisk, waiting for the network interface to return a
> > > completion notification, etc).
> > >
> > > This change adds a retry logic of computing the number of completions up to
> > > a configurable (via CLI) timeout (default: 2 seconds).
> > >
> > > Fixes: 79ebc3c26010 ("net/udpgso_bench_tx: options to exercise TX CMSG")
> > > Signed-off-by: Andrei Gherzan <andrei.gherzan@xxxxxxxxxxxxx>
> > > Cc: Willem de Bruijn <willemb@xxxxxxxxxx>
> > > Cc: Paolo Abeni <pabeni@xxxxxxxxxx>
> > > ---
> > > tools/testing/selftests/net/udpgso_bench_tx.c | 34 +++++++++++++++----
> > > 1 file changed, 27 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/tools/testing/selftests/net/udpgso_bench_tx.c b/tools/testing/selftests/net/udpgso_bench_tx.c
> > > index b47b5c32039f..ef887842522a 100644
> > > --- a/tools/testing/selftests/net/udpgso_bench_tx.c
> > > +++ b/tools/testing/selftests/net/udpgso_bench_tx.c
> > > @@ -62,6 +62,7 @@ static int cfg_payload_len = (1472 * 42);
> > > static int cfg_port = 8000;
> > > static int cfg_runtime_ms = -1;
> > > static bool cfg_poll;
> > > +static int cfg_poll_loop_timeout_ms = 2000;
> > > static bool cfg_segment;
> > > static bool cfg_sendmmsg;
> > > static bool cfg_tcp;
> > > @@ -235,16 +236,17 @@ static void flush_errqueue_recv(int fd)
> > > }
> > > }
> > >
> > > -static void flush_errqueue(int fd, const bool do_poll)
> > > +static void flush_errqueue(int fd, const bool do_poll,
> > > + unsigned long poll_timeout, const bool poll_err)
> >
> > nit: his indentation looks off though
>
> This one I've missed but I couldn't find any guidelines on it. Could you
> clarify to me what this should be or point me to soem docs? Happy to fix
> otherwise. I'm currently using vim smartindent but it is definitely not
> in line with what is here already.

It should align with the parameter above.

https://www.kernel.org/doc/html/latest/process/coding-style.html#breaking-long-lines-and-strings