On Thu, Jun 6, 2024 at 2:25 PM David Marchand <david.march...@redhat.com> wrote:
>
> On Thu, Jun 6, 2024 at 9:33 AM <christian.ehrha...@canonical.com> wrote:
> >
> > From: Christian Ehrhardt <christian.ehrha...@canonical.com>
> >
> > DPDK fixed counting of telemetry clients in 24.03 [1] which was also
> > backported to 23.11.1 [2]. Due to that the dpdk related openvswitch
> > tests now fail in the following cases:
> >   4: OVS-DPDK - ping vhost-user ports FAILED (system-dpdk.at:148)
> >   5: OVS-DPDK - ping vhost-user-client ports FAILED (system-dpdk.at:224)
> >   16: OVS-DPDK - MTU increase vport port FAILED (system-dpdk.at:609)
> >   17: OVS-DPDK - MTU decrease vport port FAILED (system-dpdk.at:651)
> >   20: OVS-DPDK - MTU upper bound vport port FAILED (system-dpdk.at:767)
> >   21: OVS-DPDK - MTU lower bound vport port FAILED (system-dpdk.at:809)
> >
> > This is due to a new error being logged under these conditions:
> >   dpdk|ERR|TELEMETRY: Socket write base info to client failed
>
> I had some trouble understanding what was happening here because this
> error log should be triggered on connection to the telemetry socket.
>
> So I expected this error log affect any dpdk unit tests, but only the
> tests with vhost-user were affected...
> Attaching gdb, I could confirm something was indeed connecting to the
> telemetry socket and I realised it was due to telemetry running in the
> testpmd dpdk instance that tries to be smart and connect/quit on
> existing sockets.
>
> So we can waive this error log but I think a better fix would be to
> avoid this conflict between testpmd and ovs (regardless of telemetry).
> Something like:
>
> diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at
> index 7cf9bac170..f8ba766739 100644
> --- a/tests/system-dpdk-macros.at
> +++ b/tests/system-dpdk-macros.at
> @@ -102,7 +102,7 @@ m4_define([OVS_DPDK_CHECK_TESTPMD],
>  m4_define([OVS_DPDK_START_TESTPMD],
>    [AT_CHECK([lscpu], [], [stdout])
>     AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while
> (c++<$(3)) {printf "512,"}; print "512"}' > NUMA_NODE])
> -   eal_options="$DPDK_EAL_OPTIONS --in-memory --socket-mem="$(cat
> NUMA_NODE)" --single-file-segments --no-pci"
> +   eal_options="$DPDK_EAL_OPTIONS --in-memory --socket-mem="$(cat
> NUMA_NODE)" --single-file-segments --no-pci --file-prefix testpmd"
>     options="$1"
>     test "$options" != "${options%% -- *}" || options="$options -- "
>     eal_options="$eal_options ${options%% -- *}"

I'm happy with that approach as well,
feel free to submit for real and scrap mine.

> Opinions?
>
> --
> David Marchand
>


-- 
Christian Ehrhardt
Director of Engineering, Ubuntu Server
Canonical Ltd
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to