[PATCH v4 22/25] net/ixgbe: use common Rx rearm code
Burakov, Anatoly
anatoly.burakov at intel.com
Thu Jun 5 11:22:33 CEST 2025
On 6/4/2025 11:40 AM, Bruce Richardson wrote:
> On Fri, May 30, 2025 at 02:57:18PM +0100, Anatoly Burakov wrote:
>> The ixgbe driver has implementations of vectorized mbuf rearm code that
>> is identical to the ones in the common code, so just use those.
>>
>> Since ixgbe Rx descriptors are always 16-byte wide, force using 16-byte
>> definitions in the common headers with a define flag.
>>
>> While we're at it, also make sure to use common definitions for things like
>> burst size, rearm threshold, and descriptors per loop, which is currently
>> defined separately in each driver.
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
>> ---
>>
>> Notes:
>> v3 -> v4:
>> - Use the common descriptor format instead of constant propagation
>> - Use some definitional hackery to work around IXGBE descriptors always being 16-byte
>> - Use the new unified definitions for burst size, rearm threshold, and descriptors per loop
>>
>> drivers/net/intel/ixgbe/ixgbe_rxtx.h | 21 ++++-
>> drivers/net/intel/ixgbe/ixgbe_rxtx_vec_neon.c | 67 +---------------
>> drivers/net/intel/ixgbe/ixgbe_rxtx_vec_sse.c | 76 +------------------
>> 3 files changed, 26 insertions(+), 138 deletions(-)
>>
>> diff --git a/drivers/net/intel/ixgbe/ixgbe_rxtx.h b/drivers/net/intel/ixgbe/ixgbe_rxtx.h
>> index d1847a33dd..0640336156 100644
>> --- a/drivers/net/intel/ixgbe/ixgbe_rxtx.h
>> +++ b/drivers/net/intel/ixgbe/ixgbe_rxtx.h
>> @@ -5,9 +5,24 @@
>> #ifndef _IXGBE_RXTX_H_
>> #define _IXGBE_RXTX_H_
>>
>> +/*
>> + * For IXGBE, descriptor size is always 16 bytes, so in order to have all
>> + * vectorized and common code building correctly and with proper offsets, force
>> + * the common parts to consider IXGBE descriptors to be 16-bytes in size.
>> + */
>> +#ifndef RTE_NET_INTEL_USE_16BYTE_DESC
>> +#define IXGBE_FORCE_16BYTE_DESC
>> +#define RTE_NET_INTEL_USE_16BYTE_DESC
>> +#endif
>> +
>> #include "../common/rx.h"
>> #include "../common/tx.h"
>>
>> +#ifdef IXGBE_FORCE_16BYTE_DESC
>> +#undef RTE_NET_INTEL_USE_16BYTE_DESC
>> +#undef IXGBE_FORCE_16BYTE_DESC
>> +#endif
>> +
>
> Is there a reason why we need to track the forced nature of the define and
> #undef it afterwards, or is it just for code hygiene?
>
> Acked-by: Bruce Richardson <bruce.richardson at intel.com>
>
It's the latter, no other reason.
--
Thanks,
Anatoly
More information about the dev
mailing list