Hi, > -----Original Message----- > From: Alexander Kozyrev <akozy...@nvidia.com> > Sent: Wednesday, August 4, 2021 9:23 AM > To: dev@dpdk.org > Cc: sta...@dpdk.org; Raslan Darawsheh <rasl...@nvidia.com>; Slava > Ovsiienko <viachesl...@nvidia.com>; Matan Azrad <ma...@nvidia.com> > Subject: [PATCH] net/mlx5: fix mbufs replenishment check for zipped CQEs > > A core dump is being generated with the following call stack: > 0 _mm256_storeu_si256 (__A=..., __P=0x80) > 1 rte_mov32 (src=0x2299c9140 "", dst=0x80) > 2 rte_memcpy_aligned (n=60, src=0x2299c9140, dst=0x80) > 3 rte_memcpy (n=60, src=0x2299c9140, dst=0x80) > 4 mprq_buf_to_pkt (strd_cnt=1, strd_idx=0, buf=0x2299c8a00, len=60, > pkt=0x18345f0c0, rxq=0x18345ef40) > 5 rxq_copy_mprq_mbuf_v (rxq=0x18345ef40, pkts=0x7f76e0ff6d18, > pkts_n=5) > 6 rxq_burst_mprq_v (rxq=0x18345ef40, pkts=0x7f76e0ff6d18, pkts_n=46, > err=0x7f76e0ff6a28, no_cq=0x7f76e0ff6a27) > 7 mlx5_rx_burst_mprq_vec (dpdk_rxq=0x18345ef40, pkts=0x7f76e0ff6a88, > pkts_n=128) > 8 rte_eth_rx_burst (nb_pkts=128, rx_pkts=0x7f76e0ff6a88, > queue_id=<optimized out>, port_id=<optimized out>) > > This crash is caused by an attempt to copy previously uncompressed CQEs > into non-allocated mbufs. There is a check to make sure we only use > allocated mbufs in the rxq_burst_mprq_v() function, but it is done only > before the main processing loop. Leftovers of compressed CQEs session are > handled before that loop and may lead to the mbufs overflow as seen. > > Move the check for replenished mbufs up to protect uncompressed CQEs > session leftovers from accessing non-allocated mbufs after the > mlx5_rx_mprq_replenish_bulk_mbuf() function is invoked. > > Bugzilla ID: 746 > Fixes: 0f20acbf5e ("net/mlx5: implement vectorized MPRQ burst") > Cc: sta...@dpdk.org > > Signed-off-by: Alexander Kozyrev <akozy...@nvidia.com> > Acked-by: Viacheslav Ovsiienko <viachesl...@nvidia.com> > ---
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh