Hi Helin, Hi Olivier,

we are seeing an issue with the ixgbe and i40e drivers which we could
track down to our setting of the private area size of the mbufs.
The issue can be easily reproduced with the l2fwd example application
when a small modification is done: just set the priv_size parameter in
the call to the rte_pktmbuf_pool_create function to an odd number like
1. In our tests this causes every call to rte_eth_rx_burst to return 32
(which is the setting of nb_pkts) nonsense mbufs although no packets are
received on the interface and the hardware counters do not report any
received packets.
Interestingly this does not happen if we force the scattered rx path.

I assume the drivers have some expectations regarding the alignment of
the buf_addr in the mbuf and setting an odd private are size breaks this
alignment in the rte_pktmbuf_init function. If this is the case then one
possible fix might be to enforce an alignment on the private area size.

Best regards,
Martin

Reply via email to