DPDK patches and discussions
 help / color / mirror / Atom feed
From: Tyler Retzlaff <roretzla@linux.microsoft.com>
To: dev@dpdk.org
Cc: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	Bruce Richardson <bruce.richardson@intel.com>,
	Chengwen Feng <fengchengwen@huawei.com>,
	Cristian Dumitrescu <cristian.dumitrescu@intel.com>,
	David Christensen <drc@linux.vnet.ibm.com>,
	David Hunt <david.hunt@intel.com>,
	Ferruh Yigit <ferruh.yigit@amd.com>,
	Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>,
	Jasvinder Singh <jasvinder.singh@intel.com>,
	Jerin Jacob <jerinj@marvell.com>,
	Kevin Laatz <kevin.laatz@intel.com>,
	Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>,
	Min Zhou <zhoumin@loongson.cn>,
	Ruifeng Wang <ruifeng.wang@arm.com>,
	Sameh Gobriel <sameh.gobriel@intel.com>,
	Stanislaw Kardach <kda@semihalf.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	Vladimir Medvedkin <vladimir.medvedkin@intel.com>,
	Yipeng Wang <yipeng1.wang@intel.com>,
	Tyler Retzlaff <roretzla@linux.microsoft.com>
Subject: [PATCH v7 10/39] eventdev: use C11 alignas
Date: Mon,  4 Mar 2024 09:52:15 -0800	[thread overview]
Message-ID: <1709574764-9041-11-git-send-email-roretzla@linux.microsoft.com> (raw)
In-Reply-To: <1709574764-9041-1-git-send-email-roretzla@linux.microsoft.com>

The current location used for __rte_aligned(a) for alignment of types
and variables is not compatible with MSVC. There is only a single
location accepted by both toolchains.

For variables standard C11 offers alignas(a) supported by conformant
compilers i.e. both MSVC and GCC.

For types the standard offers no alignment facility that compatibly
interoperates with C and C++ but may be achieved by relocating the
placement of __rte_aligned(a) to the aforementioned location accepted
by all currently supported toolchains.

To allow alignment for both compilers do the following:

* Move __rte_aligned from the end of {struct,union} definitions to
  be between {struct,union} and tag.

  The placement between {struct,union} and the tag allows the desired
  alignment to be imparted on the type regardless of the toolchain being
  used for all of GCC, LLVM, MSVC compilers building both C and C++.

* Replace use of __rte_aligned(a) on variables/fields with alignas(a).

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/eventdev/event_timer_adapter_pmd.h  |  4 ++--
 lib/eventdev/eventdev_pmd.h             |  8 ++++----
 lib/eventdev/rte_event_crypto_adapter.c | 16 ++++++++--------
 lib/eventdev/rte_event_dma_adapter.c    | 16 ++++++++--------
 lib/eventdev/rte_event_eth_rx_adapter.c |  8 ++++----
 lib/eventdev/rte_event_eth_tx_adapter.c |  4 ++--
 lib/eventdev/rte_event_timer_adapter.c  |  9 +++++----
 lib/eventdev/rte_event_timer_adapter.h  |  8 ++++----
 lib/eventdev/rte_eventdev.h             | 10 +++-------
 lib/eventdev/rte_eventdev_core.h        |  4 ++--
 10 files changed, 42 insertions(+), 45 deletions(-)

diff --git a/lib/eventdev/event_timer_adapter_pmd.h b/lib/eventdev/event_timer_adapter_pmd.h
index 65b421b..cd5127f 100644
--- a/lib/eventdev/event_timer_adapter_pmd.h
+++ b/lib/eventdev/event_timer_adapter_pmd.h
@@ -86,7 +86,7 @@ struct event_timer_adapter_ops {
  * @internal Adapter data; structure to be placed in shared memory to be
  * accessible by various processes in a multi-process configuration.
  */
-struct rte_event_timer_adapter_data {
+struct __rte_cache_aligned rte_event_timer_adapter_data {
 	uint8_t id;
 	/**< Event timer adapter ID */
 	uint8_t event_dev_id;
@@ -110,7 +110,7 @@ struct rte_event_timer_adapter_data {
 
 	uint8_t started : 1;
 	/**< Flag to indicate adapter started. */
-} __rte_cache_aligned;
+};
 
 #ifdef __cplusplus
 }
diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h
index 2ad8802..7a5699f 100644
--- a/lib/eventdev/eventdev_pmd.h
+++ b/lib/eventdev/eventdev_pmd.h
@@ -105,7 +105,7 @@ struct rte_eventdev_global {
  * This structure is safe to place in shared memory to be common among
  * different processes in a multi-process configuration.
  */
-struct rte_eventdev_data {
+struct __rte_cache_aligned rte_eventdev_data {
 	int socket_id;
 	/**< Socket ID where memory is allocated */
 	uint8_t dev_id;
@@ -144,10 +144,10 @@ struct rte_eventdev_data {
 
 	uint64_t reserved_64s[4]; /**< Reserved for future fields */
 	void *reserved_ptrs[4];	  /**< Reserved for future fields */
-} __rte_cache_aligned;
+};
 
 /** @internal The data structure associated with each event device. */
-struct rte_eventdev {
+struct __rte_cache_aligned rte_eventdev {
 	struct rte_eventdev_data *data;
 	/**< Pointer to device data */
 	struct eventdev_ops *dev_ops;
@@ -187,7 +187,7 @@ struct rte_eventdev {
 
 	uint64_t reserved_64s[3]; /**< Reserved for future fields */
 	void *reserved_ptrs[3];	  /**< Reserved for future fields */
-} __rte_cache_aligned;
+};
 
 extern struct rte_eventdev *rte_eventdevs;
 /** @internal The pool of rte_eventdev structures. */
diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c
index 9903f96..db1c7f3 100644
--- a/lib/eventdev/rte_event_crypto_adapter.c
+++ b/lib/eventdev/rte_event_crypto_adapter.c
@@ -42,7 +42,7 @@
 
 #define ECA_ADAPTER_ARRAY "crypto_adapter_array"
 
-struct crypto_ops_circular_buffer {
+struct __rte_cache_aligned crypto_ops_circular_buffer {
 	/* index of head element in circular buffer */
 	uint16_t head;
 	/* index of tail element in circular buffer */
@@ -53,9 +53,9 @@ struct crypto_ops_circular_buffer {
 	uint16_t size;
 	/* Pointer to hold rte_crypto_ops for batching */
 	struct rte_crypto_op **op_buffer;
-} __rte_cache_aligned;
+};
 
-struct event_crypto_adapter {
+struct __rte_cache_aligned event_crypto_adapter {
 	/* Event device identifier */
 	uint8_t eventdev_id;
 	/* Event port identifier */
@@ -98,10 +98,10 @@ struct event_crypto_adapter {
 	uint16_t nb_qps;
 	/* Adapter mode */
 	enum rte_event_crypto_adapter_mode mode;
-} __rte_cache_aligned;
+};
 
 /* Per crypto device information */
-struct crypto_device_info {
+struct __rte_cache_aligned crypto_device_info {
 	/* Pointer to cryptodev */
 	struct rte_cryptodev *dev;
 	/* Pointer to queue pair info */
@@ -118,15 +118,15 @@ struct crypto_device_info {
 	 * be invoked if not already invoked
 	 */
 	uint16_t num_qpairs;
-} __rte_cache_aligned;
+};
 
 /* Per queue pair information */
-struct crypto_queue_pair_info {
+struct __rte_cache_aligned crypto_queue_pair_info {
 	/* Set to indicate queue pair is enabled */
 	bool qp_enabled;
 	/* Circular buffer for batching crypto ops to cdev */
 	struct crypto_ops_circular_buffer cbuf;
-} __rte_cache_aligned;
+};
 
 static struct event_crypto_adapter **event_crypto_adapter;
 
diff --git a/lib/eventdev/rte_event_dma_adapter.c b/lib/eventdev/rte_event_dma_adapter.c
index 4196164..24dff55 100644
--- a/lib/eventdev/rte_event_dma_adapter.c
+++ b/lib/eventdev/rte_event_dma_adapter.c
@@ -26,7 +26,7 @@
 	} while (0)
 
 /* DMA ops circular buffer */
-struct dma_ops_circular_buffer {
+struct __rte_cache_aligned dma_ops_circular_buffer {
 	/* Index of head element */
 	uint16_t head;
 
@@ -41,19 +41,19 @@ struct dma_ops_circular_buffer {
 
 	/* Pointer to hold rte_event_dma_adapter_op for processing */
 	struct rte_event_dma_adapter_op **op_buffer;
-} __rte_cache_aligned;
+};
 
 /* Vchan information */
-struct dma_vchan_info {
+struct __rte_cache_aligned dma_vchan_info {
 	/* Set to indicate vchan queue is enabled */
 	bool vq_enabled;
 
 	/* Circular buffer for batching DMA ops to dma_dev */
 	struct dma_ops_circular_buffer dma_buf;
-} __rte_cache_aligned;
+};
 
 /* DMA device information */
-struct dma_device_info {
+struct __rte_cache_aligned dma_device_info {
 	/* Pointer to vchan queue info */
 	struct dma_vchan_info *vchanq;
 
@@ -81,9 +81,9 @@ struct dma_device_info {
 	 * transfer uses a hardware mechanism
 	 */
 	uint8_t internal_event_port;
-} __rte_cache_aligned;
+};
 
-struct event_dma_adapter {
+struct __rte_cache_aligned event_dma_adapter {
 	/* Event device identifier */
 	uint8_t eventdev_id;
 
@@ -145,7 +145,7 @@ struct event_dma_adapter {
 
 	/* Per instance stats structure */
 	struct rte_event_dma_adapter_stats dma_stats;
-} __rte_cache_aligned;
+};
 
 static struct event_dma_adapter **event_dma_adapter;
 
diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c
index 1b83a55..3ee20d9 100644
--- a/lib/eventdev/rte_event_eth_rx_adapter.c
+++ b/lib/eventdev/rte_event_eth_rx_adapter.c
@@ -72,7 +72,7 @@ struct eth_rx_poll_entry {
 	uint16_t eth_rx_qid;
 };
 
-struct eth_rx_vector_data {
+struct __rte_cache_aligned eth_rx_vector_data {
 	TAILQ_ENTRY(eth_rx_vector_data) next;
 	uint16_t port;
 	uint16_t queue;
@@ -82,7 +82,7 @@ struct eth_rx_vector_data {
 	uint64_t vector_timeout_ticks;
 	struct rte_mempool *vector_pool;
 	struct rte_event_vector *vector_ev;
-} __rte_cache_aligned;
+};
 
 TAILQ_HEAD(eth_rx_vector_data_list, eth_rx_vector_data);
 
@@ -103,7 +103,7 @@ struct eth_event_enqueue_buffer {
 	uint16_t last_mask;
 };
 
-struct event_eth_rx_adapter {
+struct __rte_cache_aligned event_eth_rx_adapter {
 	/* RSS key */
 	uint8_t rss_key_be[RSS_KEY_SIZE];
 	/* Event device identifier */
@@ -188,7 +188,7 @@ struct event_eth_rx_adapter {
 	uint8_t rxa_started;
 	/* Adapter ID */
 	uint8_t id;
-} __rte_cache_aligned;
+};
 
 /* Per eth device */
 struct eth_device_info {
diff --git a/lib/eventdev/rte_event_eth_tx_adapter.c b/lib/eventdev/rte_event_eth_tx_adapter.c
index 56435be..67fff8b 100644
--- a/lib/eventdev/rte_event_eth_tx_adapter.c
+++ b/lib/eventdev/rte_event_eth_tx_adapter.c
@@ -109,7 +109,7 @@ struct txa_service_queue_info {
 };
 
 /* PMD private structure */
-struct txa_service_data {
+struct __rte_cache_aligned txa_service_data {
 	/* Max mbufs processed in any service function invocation */
 	uint32_t max_nb_tx;
 	/* Number of Tx queues in adapter */
@@ -144,7 +144,7 @@ struct txa_service_data {
 	int64_t service_id;
 	/* Memory allocation name */
 	char mem_name[TXA_MEM_NAME_LEN];
-} __rte_cache_aligned;
+};
 
 /* Per eth device structure */
 struct txa_service_ethdev {
diff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c
index a3c6fb7..fdeeece 100644
--- a/lib/eventdev/rte_event_timer_adapter.c
+++ b/lib/eventdev/rte_event_timer_adapter.c
@@ -4,6 +4,7 @@
  */
 
 #include <ctype.h>
+#include <stdalign.h>
 #include <string.h>
 #include <inttypes.h>
 #include <stdbool.h>
@@ -511,11 +512,11 @@ struct rte_event_timer_adapter *
 
 #define EXP_TIM_BUF_SZ 128
 
-struct event_buffer {
+struct __rte_cache_aligned event_buffer {
 	size_t head;
 	size_t tail;
 	struct rte_event events[EVENT_BUFFER_SZ];
-} __rte_cache_aligned;
+};
 
 static inline bool
 event_buffer_full(struct event_buffer *bufp)
@@ -631,9 +632,9 @@ struct swtim {
 	/* Identifier of timer data instance */
 	uint32_t timer_data_id;
 	/* Track which cores have actually armed a timer */
-	struct {
+	alignas(RTE_CACHE_LINE_SIZE) struct {
 		RTE_ATOMIC(uint16_t) v;
-	} __rte_cache_aligned in_use[RTE_MAX_LCORE];
+	} in_use[RTE_MAX_LCORE];
 	/* Track which cores' timer lists should be polled */
 	RTE_ATOMIC(unsigned int) poll_lcores[RTE_MAX_LCORE];
 	/* The number of lists that should be polled */
diff --git a/lib/eventdev/rte_event_timer_adapter.h b/lib/eventdev/rte_event_timer_adapter.h
index c133dec..0bd1b30 100644
--- a/lib/eventdev/rte_event_timer_adapter.h
+++ b/lib/eventdev/rte_event_timer_adapter.h
@@ -473,7 +473,7 @@ enum rte_event_timer_state {
  * The generic *rte_event_timer* structure to hold the event timer attributes
  * for arm and cancel operations.
  */
-struct rte_event_timer {
+struct __rte_cache_aligned rte_event_timer {
 	struct rte_event ev;
 	/**<
 	 * Expiry event attributes.  On successful event timer timeout,
@@ -504,7 +504,7 @@ struct rte_event_timer {
 	/**< Memory to store user specific metadata.
 	 * The event timer adapter implementation should not modify this area.
 	 */
-} __rte_cache_aligned;
+};
 
 typedef uint16_t (*rte_event_timer_arm_burst_t)(
 		const struct rte_event_timer_adapter *adapter,
@@ -526,7 +526,7 @@ typedef uint16_t (*rte_event_timer_cancel_burst_t)(
 /**
  * @internal Data structure associated with each event timer adapter.
  */
-struct rte_event_timer_adapter {
+struct __rte_cache_aligned rte_event_timer_adapter {
 	rte_event_timer_arm_burst_t arm_burst;
 	/**< Pointer to driver arm_burst function. */
 	rte_event_timer_arm_tmo_tick_burst_t arm_tmo_tick_burst;
@@ -540,7 +540,7 @@ struct rte_event_timer_adapter {
 
 	uint8_t allocated : 1;
 	/**< Flag to indicate that this adapter has been allocated */
-} __rte_cache_aligned;
+};
 
 #define ADAPTER_VALID_OR_ERR_RET(adapter, retval) do {		\
 	if (adapter == NULL || !adapter->allocated)		\
diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h
index 3af4686..08e5f93 100644
--- a/lib/eventdev/rte_eventdev.h
+++ b/lib/eventdev/rte_eventdev.h
@@ -1338,7 +1338,7 @@ int rte_event_dev_stop_flush_callback_register(uint8_t dev_id,
 /**
  * Event vector structure.
  */
-struct rte_event_vector {
+struct __rte_aligned(16) rte_event_vector {
 	uint16_t nb_elem;
 	/**< Number of elements valid in this event vector. */
 	uint16_t elem_offset : 12;
@@ -1376,23 +1376,19 @@ struct rte_event_vector {
 	 * value to share between dequeue and enqueue operation.
 	 * The application should not modify this field.
 	 */
-	union {
+	union __rte_aligned(16) {
 #endif
 		struct rte_mbuf *mbufs[0];
 		void *ptrs[0];
 		uint64_t u64s[0];
 #ifndef __cplusplus
-	} __rte_aligned(16);
+	};
 #endif
 	/**< Start of the vector array union. Depending upon the event type the
 	 * vector array can be an array of mbufs or pointers or opaque u64
 	 * values.
 	 */
-#ifndef __DOXYGEN__
-} __rte_aligned(16);
-#else
 };
-#endif
 
 /* Scheduler type definitions */
 #define RTE_SCHED_TYPE_ORDERED          0
diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h
index 5b40551..fc8e155 100644
--- a/lib/eventdev/rte_eventdev_core.h
+++ b/lib/eventdev/rte_eventdev_core.h
@@ -49,7 +49,7 @@ typedef uint16_t (*event_dma_adapter_enqueue_t)(void *port, struct rte_event ev[
 typedef int (*event_profile_switch_t)(void *port, uint8_t profile);
 /**< @internal Switch active link profile on the event port. */
 
-struct rte_event_fp_ops {
+struct __rte_cache_aligned rte_event_fp_ops {
 	void **data;
 	/**< points to array of internal port data pointers */
 	event_enqueue_t enqueue;
@@ -77,7 +77,7 @@ struct rte_event_fp_ops {
 	event_profile_switch_t profile_switch;
 	/**< PMD Event switch profile function. */
 	uintptr_t reserved[4];
-} __rte_cache_aligned;
+};
 
 extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
 
-- 
1.8.3.1


  parent reply	other threads:[~2024-03-04 17:54 UTC|newest]

Thread overview: 260+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-14  1:26 [PATCH 00/14] use C11 alignas and normalize type alignment Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 01/14] eal: use C11 alignas Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 02/14] stack: " Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 03/14] sched: " Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 04/14] ring: remove unnecessary explicit alignment Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 05/14] pipeline: use C11 alignas Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 06/14] net: " Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 07/14] mbuf: remove unnecessary explicit alignment Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 08/14] hash: use C11 alignas Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 09/14] eventdev: " Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 10/14] ethdev: " Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 11/14] dmadev: " Tyler Retzlaff
2024-02-14  2:09   ` fengchengwen
2024-02-14  1:26 ` [PATCH 12/14] distributor: " Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 13/14] acl: " Tyler Retzlaff
2024-02-14  1:26 ` [PATCH 14/14] eal: redefine macro to be integer literal for MSVC Tyler Retzlaff
2024-02-14  4:17 ` [PATCH v2 00/14] use C11 alignas and normalize type alignment Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 01/14] eal: use C11 alignas Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 02/14] stack: " Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 03/14] sched: " Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 04/14] ring: remove unnecessary explicit alignment Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 05/14] pipeline: use C11 alignas Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 06/14] net: " Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 07/14] mbuf: remove unnecessary explicit alignment Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 08/14] hash: use C11 alignas Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 09/14] eventdev: " Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 10/14] ethdev: " Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 11/14] dmadev: " Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 12/14] distributor: " Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 13/14] acl: " Tyler Retzlaff
2024-02-14  4:17   ` [PATCH v2 14/14] eal: redefine macro to be integer literal for MSVC Tyler Retzlaff
2024-02-14  7:05 ` [PATCH v3 00/39] use C11 alignas and normalize type alignment Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 01/39] eal: use C11 alignas Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 02/39] eal: redefine macro to be integer literal for MSVC Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 03/39] stack: use C11 alignas Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 04/39] sched: " Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 05/39] ring: " Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 06/39] pipeline: " Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 07/39] net: " Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 08/39] mbuf: remove unnecessary explicit alignment Tyler Retzlaff
2024-02-14 13:12     ` David Marchand
2024-02-14 14:28       ` Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 09/39] hash: use C11 alignas Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 10/39] eventdev: " Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 11/39] ethdev: " Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 12/39] dmadev: " Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 13/39] distributor: " Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 14/39] acl: " Tyler Retzlaff
2024-02-14  7:05   ` [PATCH v3 15/39] vhost: " Tyler Retzlaff
2024-02-14 10:37     ` Maxime Coquelin
2024-02-14  7:05   ` [PATCH v3 16/39] timer: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 17/39] table: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 18/39] reorder: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 19/39] regexdev: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 20/39] rcu: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 21/39] power: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 22/39] rawdev: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 23/39] port: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 24/39] pdcp: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 25/39] node: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 26/39] mldev: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 27/39] mempool: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 28/39] member: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 29/39] lpm: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 30/39] ipsec: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 31/39] jobstats: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 32/39] bpf: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 33/39] compressdev: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 34/39] cryptodev: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 35/39] dispatcher: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 36/39] fib: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 37/39] gpudev: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 38/39] graph: " Tyler Retzlaff
2024-02-14  7:06   ` [PATCH v3 39/39] ip_frag: " Tyler Retzlaff
2024-02-14  8:22     ` Morten Brørup
2024-02-14 16:35 ` [PATCH v4 00/39] use C11 alignas and normalize type alignment Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 01/39] eal: use C11 alignas Tyler Retzlaff
2024-02-22  6:43     ` Thomas Monjalon
2024-02-14 16:35   ` [PATCH v4 02/39] eal: redefine macro to be integer literal for MSVC Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 03/39] stack: use C11 alignas Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 04/39] sched: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 05/39] ring: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 06/39] pipeline: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 07/39] net: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 08/39] mbuf: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 09/39] hash: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 10/39] eventdev: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 11/39] ethdev: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 12/39] dmadev: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 13/39] distributor: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 14/39] acl: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 15/39] vhost: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 16/39] timer: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 17/39] table: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 18/39] reorder: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 19/39] regexdev: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 20/39] rcu: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 21/39] power: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 22/39] rawdev: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 23/39] port: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 24/39] pdcp: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 25/39] node: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 26/39] mldev: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 27/39] mempool: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 28/39] member: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 29/39] lpm: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 30/39] ipsec: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 31/39] jobstats: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 32/39] bpf: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 33/39] compressdev: " Tyler Retzlaff
2024-02-14 16:35   ` [PATCH v4 34/39] cryptodev: " Tyler Retzlaff
2024-02-14 16:36   ` [PATCH v4 35/39] dispatcher: " Tyler Retzlaff
2024-02-14 16:36   ` [PATCH v4 36/39] fib: " Tyler Retzlaff
2024-02-14 16:36   ` [PATCH v4 37/39] gpudev: " Tyler Retzlaff
2024-02-14 16:36   ` [PATCH v4 38/39] graph: " Tyler Retzlaff
2024-02-14 16:36   ` [PATCH v4 39/39] ip_frag: " Tyler Retzlaff
2024-02-23 19:03 ` [PATCH v5 00/39] " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 01/39] eal: " Tyler Retzlaff
2024-02-26 11:13     ` Bruce Richardson
2024-02-23 19:03   ` [PATCH v5 02/39] eal: redefine macro to be integer literal for MSVC Tyler Retzlaff
2024-02-26 12:51     ` Konstantin Ananyev
2024-02-26 17:20       ` Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 03/39] stack: use C11 alignas Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 04/39] sched: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 05/39] ring: " Tyler Retzlaff
2024-02-26 13:23     ` Konstantin Ananyev
2024-02-26 17:29       ` Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 06/39] pipeline: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 07/39] net: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 08/39] mbuf: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 09/39] hash: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 10/39] eventdev: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 11/39] ethdev: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 12/39] dmadev: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 13/39] distributor: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 14/39] acl: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 15/39] vhost: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 16/39] timer: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 17/39] table: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 18/39] reorder: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 19/39] regexdev: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 20/39] rcu: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 21/39] power: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 22/39] rawdev: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 23/39] port: " Tyler Retzlaff
2024-02-23 19:03   ` [PATCH v5 24/39] pdcp: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 25/39] node: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 26/39] mldev: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 27/39] mempool: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 28/39] member: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 29/39] lpm: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 30/39] ipsec: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 31/39] jobstats: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 32/39] bpf: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 33/39] compressdev: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 34/39] cryptodev: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 35/39] dispatcher: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 36/39] fib: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 37/39] gpudev: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 38/39] graph: " Tyler Retzlaff
2024-02-23 19:04   ` [PATCH v5 39/39] ip_frag: " Tyler Retzlaff
2024-02-26 18:25 ` [PATCH v6 00/39] " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 01/39] eal: " Tyler Retzlaff
2024-02-27  9:34     ` Konstantin Ananyev
2024-02-26 18:25   ` [PATCH v6 02/39] eal: redefine macro to be integer literal for MSVC Tyler Retzlaff
2024-02-27  9:35     ` Konstantin Ananyev
2024-02-26 18:25   ` [PATCH v6 03/39] stack: use C11 alignas Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 04/39] sched: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 05/39] ring: " Tyler Retzlaff
2024-02-27  9:36     ` Konstantin Ananyev
2024-02-26 18:25   ` [PATCH v6 06/39] pipeline: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 07/39] net: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 08/39] mbuf: " Tyler Retzlaff
2024-02-27  9:40     ` Konstantin Ananyev
2024-02-26 18:25   ` [PATCH v6 09/39] hash: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 10/39] eventdev: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 11/39] ethdev: " Tyler Retzlaff
2024-02-27  9:39     ` Konstantin Ananyev
2024-02-26 18:25   ` [PATCH v6 12/39] dmadev: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 13/39] distributor: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 14/39] acl: " Tyler Retzlaff
2024-02-27  9:38     ` Konstantin Ananyev
2024-02-26 18:25   ` [PATCH v6 15/39] vhost: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 16/39] timer: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 17/39] table: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 18/39] reorder: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 19/39] regexdev: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 20/39] rcu: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 21/39] power: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 22/39] rawdev: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 23/39] port: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 24/39] pdcp: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 25/39] node: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 26/39] mldev: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 27/39] mempool: " Tyler Retzlaff
2024-02-27  9:42     ` Konstantin Ananyev
2024-02-26 18:25   ` [PATCH v6 28/39] member: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 29/39] lpm: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 30/39] ipsec: " Tyler Retzlaff
2024-02-27  9:42     ` Konstantin Ananyev
2024-02-26 18:25   ` [PATCH v6 31/39] jobstats: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 32/39] bpf: " Tyler Retzlaff
2024-02-27  9:43     ` Konstantin Ananyev
2024-02-26 18:25   ` [PATCH v6 33/39] compressdev: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 34/39] cryptodev: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 35/39] dispatcher: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 36/39] fib: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 37/39] gpudev: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 38/39] graph: " Tyler Retzlaff
2024-02-26 18:25   ` [PATCH v6 39/39] ip_frag: " Tyler Retzlaff
2024-02-27  9:44     ` Konstantin Ananyev
2024-03-04 17:52 ` [PATCH v7 00/39] " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 01/39] eal: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 02/39] eal: redefine macro to be integer literal for MSVC Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 03/39] stack: use C11 alignas Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 04/39] sched: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 05/39] ring: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 06/39] pipeline: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 07/39] net: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 08/39] mbuf: " Tyler Retzlaff
2024-03-05 14:30     ` David Marchand
2024-03-05 17:37       ` Tyler Retzlaff
2024-03-05 20:00         ` David Marchand
2024-03-04 17:52   ` [PATCH v7 09/39] hash: " Tyler Retzlaff
2024-03-04 17:52   ` Tyler Retzlaff [this message]
2024-03-05 15:47     ` [PATCH v7 10/39] eventdev: " David Marchand
2024-03-05 17:41       ` Tyler Retzlaff
2024-03-06  9:45         ` David Marchand
2024-03-04 17:52   ` [PATCH v7 11/39] ethdev: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 12/39] dmadev: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 13/39] distributor: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 14/39] acl: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 15/39] vhost: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 16/39] timer: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 17/39] table: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 18/39] reorder: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 19/39] regexdev: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 20/39] rcu: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 21/39] power: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 22/39] rawdev: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 23/39] port: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 24/39] pdcp: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 25/39] node: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 26/39] mldev: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 27/39] mempool: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 28/39] member: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 29/39] lpm: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 30/39] ipsec: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 31/39] jobstats: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 32/39] bpf: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 33/39] compressdev: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 34/39] cryptodev: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 35/39] dispatcher: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 36/39] fib: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 37/39] gpudev: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 38/39] graph: " Tyler Retzlaff
2024-03-04 17:52   ` [PATCH v7 39/39] ip_frag: " Tyler Retzlaff
2024-03-05 20:08   ` [PATCH v7 00/39] " David Marchand
2024-03-06  9:55   ` David Marchand
2024-03-06 18:05     ` Tyler Retzlaff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1709574764-9041-11-git-send-email-roretzla@linux.microsoft.com \
    --to=roretzla@linux.microsoft.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=bruce.richardson@intel.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=david.hunt@intel.com \
    --cc=dev@dpdk.org \
    --cc=drc@linux.vnet.ibm.com \
    --cc=fengchengwen@huawei.com \
    --cc=ferruh.yigit@amd.com \
    --cc=honnappa.nagarahalli@arm.com \
    --cc=jasvinder.singh@intel.com \
    --cc=jerinj@marvell.com \
    --cc=kda@semihalf.com \
    --cc=kevin.laatz@intel.com \
    --cc=konstantin.v.ananyev@yandex.ru \
    --cc=ruifeng.wang@arm.com \
    --cc=sameh.gobriel@intel.com \
    --cc=thomas@monjalon.net \
    --cc=vladimir.medvedkin@intel.com \
    --cc=yipeng1.wang@intel.com \
    --cc=zhoumin@loongson.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).