On Tue, Feb 27, 2024 at 4:28 PM Isaac Boukris <ibouk...@gmail.com> wrote:
>
> On Tue, Feb 27, 2024 at 1:27 PM Isaac Boukris <ibouk...@gmail.com> wrote:
> >
> > Hello,
> >
> > This works fine with 23.03.0 but starting from 23.07.0 up to master it
> > fails as follows.
> >
> > Initialization is ok:
> > EAL: Probe PCI driver: net_iavf (8086:154c) device: 0000:09:00.0 (socket -1)
> > iavf_set_rx_function(): request RXDID[1] in Queue[0] is legacy, set
> > rx_pkt_burst as legacy for all queues
> >
> > telemetry.py /ethdev/link_status,0 | jq
> >   {
> >     "/ethdev/link_status": {
> >       "status": "UP",
> >       "speed": 40000,
> >       "duplex": "full-duplex"
> >     }
> >   }
> >
> > But the following command hang and fail:
> > telemetry.py /ethdev/stats,0 | jq
> > telemetry.py /ethdev/xstats,0 | jq
> >
> > On the logs I see:
> > iavf_execute_vf_cmd(): No response for cmd 15
> > iavf_query_stats(): fail to execute command OP_GET_STATS
> > iavf_dev_stats_get(): Get statistics failed
>
> I did some git bisect and found the commit below, help appreciated!
>
> 5712bf9d6e14d0eaa7a07814d59351ffeb8e02ed is the first bad commit
> commit 5712bf9d6e14d0eaa7a07814d59351ffeb8e02ed
> Author: Wenzhuo Lu <wenzhuo...@intel.com>
> Date:   Tue Apr 18 13:11:05 2023 +0800
>
>     net/iavf: add Tx AVX2 offload path
>
>     Add a specific path for TX AVX2.
>     In this path, support the HW offload features, like,
>     checksum insertion, VLAN insertion.
>     This path is chosen automatically according to the
>     configuration.
>
>     'inline' is used, then the duplicate code is generated
>     by the compiler.
>
>     Signed-off-by: Wenzhuo Lu <wenzhuo...@intel.com>
>     Acked-by: Qi Zhang <qi.z.zh...@intel.com>
>
>  drivers/net/iavf/iavf_rxtx.c          | 33 +++++++++++++--------
>  drivers/net/iavf/iavf_rxtx.h          |  2 ++
>  drivers/net/iavf/iavf_rxtx_vec_avx2.c | 54 
> +++++++++++++++++++++++++----------
>  3 files changed, 62 insertions(+), 27 deletions(-)

Notte that I was able to workaround it by forcing the old logic with:

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index f19aa14646..1537a5f19c 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -4003,6 +4003,8 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
                        use_avx512 = true;
 #endif

+               if (!use_sse) use_avx2 = false;
+
                if (!use_sse && !use_avx2 && !use_avx512)
                        goto normal;

Reply via email to