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.bura...@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.richard...@intel.com>


It's the latter, no other reason.

--
Thanks,
Anatoly

Reply via email to