> From: Tyler Retzlaff [mailto:roret...@linux.microsoft.com] > Sent: Wednesday, 20 March 2024 23.02 > > Don't directly access the cacheline1 field in rte_mbuf struct for > prefetch instead just use rte_mbuf_prefetch_part2() to prefetch. > > Signed-off-by: Tyler Retzlaff <roret...@linux.microsoft.com> > --- > drivers/net/i40e/i40e_rxtx_vec_avx512.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx512.c > b/drivers/net/i40e/i40e_rxtx_vec_avx512.c > index f3050cd..0238b03 100644 > --- a/drivers/net/i40e/i40e_rxtx_vec_avx512.c > +++ b/drivers/net/i40e/i40e_rxtx_vec_avx512.c > @@ -826,7 +826,7 @@ > free[0] = m; > nb_free = 1; > for (i = 1; i < n; i++) { > - rte_prefetch0(&txep[i + 3].mbuf->cacheline1); > + rte_mbuf_prefetch_part2(txep[i + 3].mbuf);
@Yuying Zhang: If this prefetch is for m->next, I think it can be omitted if m->next is in the first cache line: - rte_prefetch0(&txep[i + 3].mbuf->cacheline1); +#if RTE_IOVA_IN_MBUF + rte_mbuf_prefetch_part2(txep[i + 3].mbuf); +#endif If so, it belongs in a separate patch anyway. > m = rte_pktmbuf_prefree_seg(txep[i].mbuf); > if (likely(m)) { > if (likely(m->pool == free[0]->pool)) { > -- > 1.8.3.1 Reviewed-by: Morten Brørup <m...@smartsharesystems.com>