DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Morten Brørup" <mb@smartsharesystems.com>
To: "Tyler Retzlaff" <roretzla@linux.microsoft.com>, <dev@dpdk.org>
Cc: "Andrew Boyer" <andrew.boyer@amd.com>,
	"Andrew Rybchenko" <andrew.rybchenko@oktetlabs.ru>,
	"Bruce Richardson" <bruce.richardson@intel.com>,
	"Chenbo Xia" <chenbox@nvidia.com>,
	"Konstantin Ananyev" <konstantin.v.ananyev@yandex.ru>,
	"Maxime Coquelin" <maxime.coquelin@redhat.com>
Subject: RE: [PATCH] mbuf: replace GCC marker extension with C11 anonymous unions
Date: Wed, 31 Jan 2024 10:18:37 +0100	[thread overview]
Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F1D0@smartserver.smartshare.dk> (raw)
In-Reply-To: <1706657173-26166-2-git-send-email-roretzla@linux.microsoft.com>

> From: Tyler Retzlaff [mailto:roretzla@linux.microsoft.com]
> Sent: Wednesday, 31 January 2024 00.26
> 
> Replace the use of RTE_MARKER<x> with C11 anonymous unions to improve
> code portability between toolchains.
> 
> Update use of rte_mbuf rearm_data field in net/ionic, net/sfc and
> net/virtio which were accessing field as a zero-length array.
> 
> Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
> ---

I have some comments, putting weight on code readability rather than avoiding API breakage.

We can consider my suggested API breaking changes for the next API breaking release, and keep your goal of minimal API breakage with the current changes.

> diff --git a/lib/mbuf/rte_mbuf_core.h b/lib/mbuf/rte_mbuf_core.h
> index 5688683..d731ea0 100644
> --- a/lib/mbuf/rte_mbuf_core.h
> +++ b/lib/mbuf/rte_mbuf_core.h
> @@ -464,9 +464,10 @@ enum {
>   * The generic rte_mbuf, containing a packet mbuf.
>   */
>  struct rte_mbuf {
> -	RTE_MARKER cacheline0;
> -
> -	void *buf_addr;           /**< Virtual address of segment buffer.
> */
> +	union {
> +	    void *cacheline0;
> +	    void *buf_addr;           /**< Virtual address of segment
> buffer. */
> +	};

I suppose this is the least ugly workaround for not being able to use the RTE_MARKER hack here.

>  #if RTE_IOVA_IN_MBUF
>  	/**
>  	 * Physical address of segment buffer.
> @@ -487,69 +488,77 @@ struct rte_mbuf {
>  #endif
> 
>  	/* next 8 bytes are initialised on RX descriptor rearm */
> -	RTE_MARKER64 rearm_data;
> -	uint16_t data_off;
> -
> -	/**
> -	 * Reference counter. Its size should at least equal to the size
> -	 * of port field (16 bits), to support zero-copy broadcast.
> -	 * It should only be accessed using the following functions:
> -	 * rte_mbuf_refcnt_update(), rte_mbuf_refcnt_read(), and
> -	 * rte_mbuf_refcnt_set(). The functionality of these functions
> (atomic,
> -	 * or non-atomic) is controlled by the RTE_MBUF_REFCNT_ATOMIC
> flag.
> -	 */
> -	RTE_ATOMIC(uint16_t) refcnt;
> +	union {
> +		uint64_t rearm_data;

I consider this union with uint64_t rearm_data an improvement for code readability. Using a marker here was weird.

> +		struct {
> +			uint16_t data_off;
> +
> +			/**
> +			 * Reference counter. Its size should at least equal
> to the size
> +			 * of port field (16 bits), to support zero-copy
> broadcast.
> +			 * It should only be accessed using the following
> functions:
> +			 * rte_mbuf_refcnt_update(), rte_mbuf_refcnt_read(),
> and
> +			 * rte_mbuf_refcnt_set(). The functionality of these
> functions (atomic,
> +			 * or non-atomic) is controlled by the
> RTE_MBUF_REFCNT_ATOMIC flag.
> +			 */
> +			RTE_ATOMIC(uint16_t) refcnt;
> 
> -	/**
> -	 * Number of segments. Only valid for the first segment of an
> mbuf
> -	 * chain.
> -	 */
> -	uint16_t nb_segs;
> +			/**
> +			 * Number of segments. Only valid for the first
> segment of an mbuf
> +			 * chain.
> +			 */
> +			uint16_t nb_segs;
> 
> -	/** Input port (16 bits to support more than 256 virtual ports).
> -	 * The event eth Tx adapter uses this field to specify the output
> port.
> -	 */
> -	uint16_t port;
> +			/** Input port (16 bits to support more than 256
> virtual ports).
> +			 * The event eth Tx adapter uses this field to
> specify the output port.
> +			 */
> +			uint16_t port;
> 
> -	uint64_t ol_flags;        /**< Offload features. */
> +			uint64_t ol_flags;        /**< Offload features. */

Either:
1. If the comment about 8 bytes init on rearm is correct: ol_flags should remain outside the struct and union, i.e. at top level, else
2. It would be nice to increase the size of the rearm_data variable to 16 byte, so it covers the entire struct being rearmed. (And the incorrect comment about how many bytes are being rearmed should be fixed.)

> +		};
> +	};
> 
>  	/* remaining bytes are set on RX when pulling packet from
> descriptor */
> -	RTE_MARKER rx_descriptor_fields1;
> -
> -	/*
> -	 * The packet type, which is the combination of outer/inner L2,
> L3, L4
> -	 * and tunnel types. The packet_type is about data really present
> in the
> -	 * mbuf. Example: if vlan stripping is enabled, a received vlan
> packet
> -	 * would have RTE_PTYPE_L2_ETHER and not RTE_PTYPE_L2_VLAN
> because the
> -	 * vlan is stripped from the data.
> -	 */
>  	union {
> -		uint32_t packet_type; /**< L2/L3/L4 and tunnel information.
> */
> -		__extension__
> +		void *rx_descriptor_fields1;

Instead of using void* for rx_descriptor_fields1, it would be nice to make rx_descriptor_fields1 a type of the correct size. It might need to be an uint32_t array to avoid imposing additional alignment requirements.

> +
> +		/*
> +		 * The packet type, which is the combination of outer/inner
> L2, L3, L4
> +		 * and tunnel types. The packet_type is about data really
> present in the
> +		 * mbuf. Example: if vlan stripping is enabled, a received
> vlan packet
> +		 * would have RTE_PTYPE_L2_ETHER and not RTE_PTYPE_L2_VLAN
> because the
> +		 * vlan is stripped from the data.
> +		 */
>  		struct {
> -			uint8_t l2_type:4;   /**< (Outer) L2 type. */
> -			uint8_t l3_type:4;   /**< (Outer) L3 type. */
> -			uint8_t l4_type:4;   /**< (Outer) L4 type. */
> -			uint8_t tun_type:4;  /**< Tunnel type. */
>  			union {
> -				uint8_t inner_esp_next_proto;
> -				/**< ESP next protocol type, valid if
> -				 * RTE_PTYPE_TUNNEL_ESP tunnel type is set
> -				 * on both Tx and Rx.
> -				 */
> +				uint32_t packet_type; /**< L2/L3/L4 and tunnel
> information. */
>  				__extension__
>  				struct {
> -					uint8_t inner_l2_type:4;
> -					/**< Inner L2 type. */
> -					uint8_t inner_l3_type:4;
> -					/**< Inner L3 type. */
> +					uint8_t l2_type:4;   /**< (Outer) L2
> type. */
> +					uint8_t l3_type:4;   /**< (Outer) L3
> type. */
> +					uint8_t l4_type:4;   /**< (Outer) L4
> type. */
> +					uint8_t tun_type:4;  /**< Tunnel type. */
> +					union {
> +						uint8_t inner_esp_next_proto;
> +						/**< ESP next protocol type, valid
> if
> +						 * RTE_PTYPE_TUNNEL_ESP tunnel type
> is set
> +						 * on both Tx and Rx.
> +						 */
> +						__extension__
> +						struct {
> +							uint8_t inner_l2_type:4;
> +							/**< Inner L2 type. */
> +							uint8_t inner_l3_type:4;
> +							/**< Inner L3 type. */
> +						};
> +					};
> +					uint8_t inner_l4_type:4; /**< Inner L4
> type. */
>  				};
>  			};
> -			uint8_t inner_l4_type:4; /**< Inner L4 type. */
> +			uint32_t pkt_len;         /**< Total pkt len: sum of
> all segments. */
>  		};
>  	};
> 
> -	uint32_t pkt_len;         /**< Total pkt len: sum of all
> segments. */
>  	uint16_t data_len;        /**< Amount of data in segment buffer.
> */
>  	/** VLAN TCI (CPU order), valid if RTE_MBUF_F_RX_VLAN is set. */
>  	uint16_t vlan_tci;
> @@ -595,21 +604,23 @@ struct rte_mbuf {
>  	struct rte_mempool *pool; /**< Pool from which mbuf was
> allocated. */
> 
>  	/* second cache line - fields only used in slow path or on TX */
> -	RTE_MARKER cacheline1 __rte_cache_min_aligned;
> +	union {
> +		void *cacheline1;

The __rte_cache_min_aligned cannot be removed. It provides cache line alignment for 32 bit platforms, where pointers in the first cache line only use 4 byte.

NB: The rte_mbuf structure could be optimized for 32 bit platforms by moving fields from the second cache line to the holes in the first, but that's another discussion.

> 
>  #if RTE_IOVA_IN_MBUF
> -	/**
> -	 * Next segment of scattered packet. Must be NULL in the last
> -	 * segment or in case of non-segmented packet.
> -	 */
> -	struct rte_mbuf *next;
> +		/**
> +		 * Next segment of scattered packet. Must be NULL in the
> last
> +		 * segment or in case of non-segmented packet.
> +		 */
> +		struct rte_mbuf *next;
>  #else
> -	/**
> -	 * Reserved for dynamic fields
> -	 * when the next pointer is in first cache line (i.e.
> RTE_IOVA_IN_MBUF is 0).
> -	 */
> -	uint64_t dynfield2;
> +		/**
> +		 * Reserved for dynamic fields
> +		 * when the next pointer is in first cache line (i.e.
> RTE_IOVA_IN_MBUF is 0).
> +		 */
> +		uint64_t dynfield2;
>  #endif
> +	};
> 
>  	/* fields to support TX offloads */
>  	union {
> --
> 1.8.3.1


  reply	other threads:[~2024-01-31  9:18 UTC|newest]

Thread overview: 171+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-30 23:26 [PATCH] " Tyler Retzlaff
2024-01-30 23:26 ` [PATCH] mbuf: " Tyler Retzlaff
2024-01-31  9:18   ` Morten Brørup [this message]
2024-01-31 21:09     ` Tyler Retzlaff
2024-01-31 22:39       ` Morten Brørup
2024-01-31 13:49   ` Bruce Richardson
2024-01-31 20:45     ` Tyler Retzlaff
2024-01-31 22:55       ` Morten Brørup
2024-02-13  6:45   ` [PATCH v2] RFC: " Tyler Retzlaff
2024-02-13  6:45     ` [PATCH v2] mbuf: " Tyler Retzlaff
2024-02-13 16:58       ` Morten Brørup
2024-02-13 18:48         ` Tyler Retzlaff
2024-02-13 19:27           ` Morten Brørup
2024-02-13 20:00             ` Tyler Retzlaff
2024-02-13  8:57     ` [PATCH v2] RFC: " Bruce Richardson
2024-02-13 17:09     ` Morten Brørup
2024-02-13 23:33   ` [PATCH v3] RFC deprecate RTE_MARKER in struct rte_mbuf Tyler Retzlaff
2024-02-13 23:33     ` [PATCH v3] mbuf: deprecate GCC marker in rte mbuf struct Tyler Retzlaff
2024-02-14 10:46       ` Morten Brørup
2024-02-14 20:16         ` Tyler Retzlaff
2024-02-14 10:49     ` [PATCH v3] RFC deprecate RTE_MARKER in struct rte_mbuf Morten Brørup
2024-02-26  1:18     ` Stephen Hemminger
2024-02-15  6:21 ` [PATCH v4 00/18] stop using zero sized marker fields Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 01/18] mbuf: deprecate GCC marker in rte mbuf struct Tyler Retzlaff
2024-02-18  2:28     ` fengchengwen
2024-02-18 12:39     ` Thomas Monjalon
2024-02-18 13:07       ` Morten Brørup
2024-02-18 15:22         ` Thomas Monjalon
2024-02-18 16:20           ` Morten Brørup
2024-02-20 17:24           ` Tyler Retzlaff
2024-02-20 17:20       ` Tyler Retzlaff
2024-02-20 17:53         ` Thomas Monjalon
2024-02-20 19:16           ` Thomas Monjalon
2024-02-20 19:37             ` Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 02/18] mbuf: stop using zero sized marker fields Tyler Retzlaff
2024-02-18  2:38     ` fengchengwen
2024-02-15  6:21   ` [PATCH v4 03/18] net/i40e: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 04/18] net/iavf: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 05/18] net/ice: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 06/18] net/ixgbe: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 07/18] net/mlx5: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 08/18] net/sfc: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 09/18] net/bnxt: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 10/18] net/enic: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 11/18] net/fm10k: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 12/18] net/hns3: " Tyler Retzlaff
2024-02-18  3:00     ` fengchengwen
2024-02-15  6:21   ` [PATCH v4 13/18] net/ionic: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 14/18] net/thunderx: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 15/18] net/virtio: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 16/18] net/cnxk: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 17/18] common/idpf: " Tyler Retzlaff
2024-02-15  6:21   ` [PATCH v4 18/18] examples/dma: " Tyler Retzlaff
2024-02-15  9:37   ` [PATCH v4 00/18] " Morten Brørup
2024-02-24  8:21 ` [PATCH v5 00/22] stop using RTE_MARKER extensions Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 01/22] eal: provide macro to expand marker extensions Tyler Retzlaff
2024-02-24 10:51     ` Thomas Monjalon
2024-02-24 11:18       ` Thomas Monjalon
2024-02-24  8:21   ` [PATCH v5 02/22] mbuf: expand rte markers empty when building with MSVC Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 03/22] security: " Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 04/22] cryptodev: " Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 05/22] mbuf: stop using mbuf cacheline marker fields Tyler Retzlaff
2024-02-24 10:58     ` Thomas Monjalon
2024-02-26 18:20       ` Stephen Hemminger
2024-02-24  8:21   ` [PATCH v5 06/22] mbuf: add mbuf descriptor accessors Tyler Retzlaff
2024-02-24 11:01     ` Thomas Monjalon
2024-02-24  8:21   ` [PATCH v5 07/22] common/idpf: use " Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 08/22] net/bnxt: " Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 09/22] net/cnxk: " Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 10/22] net/enic: " Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 11/22] net/fm10k: " Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 12/22] net/hns3: " Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 13/22] net/i40e: " Tyler Retzlaff
2024-02-24  8:21   ` [PATCH v5 14/22] net/iavf: " Tyler Retzlaff
2024-02-24  8:22   ` [PATCH v5 15/22] net/ice: " Tyler Retzlaff
2024-02-24  8:22   ` [PATCH v5 16/22] net/ionic: " Tyler Retzlaff
2024-02-24  8:22   ` [PATCH v5 17/22] net/ixgbe: " Tyler Retzlaff
2024-02-24  8:22   ` [PATCH v5 18/22] net/mlx5: " Tyler Retzlaff
2024-02-24  8:22   ` [PATCH v5 19/22] net/octeon_ep: " Tyler Retzlaff
2024-02-24  8:22   ` [PATCH v5 20/22] net/sfc: " Tyler Retzlaff
2024-02-24  8:22   ` [PATCH v5 21/22] net/thunderx: " Tyler Retzlaff
2024-02-24  8:22   ` [PATCH v5 22/22] net/virtio: " Tyler Retzlaff
2024-02-24 10:42   ` [PATCH v5 00/22] stop using RTE_MARKER extensions Morten Brørup
2024-02-24 11:13     ` Thomas Monjalon
2024-02-24 11:23       ` Morten Brørup
2024-02-27  5:41 ` [PATCH v6 00/23] stop and remove RTE_MARKER typedefs Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 01/23] mbuf: add accessors for rearm and Rx descriptor fields Tyler Retzlaff
2024-02-27  9:10     ` Morten Brørup
2024-02-27 17:17       ` Tyler Retzlaff
2024-02-28  8:28         ` Morten Brørup
2024-02-28 16:20           ` Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 02/23] mbuf: consolidate driver asserts for mbuf struct Tyler Retzlaff
2024-02-27 10:02     ` Konstantin Ananyev
2024-03-14 16:51     ` Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 03/23] common/idpf: use mbuf descriptor accessors Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 04/23] net/bnxt: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 05/23] net/cnxk: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 06/23] net/enic: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 07/23] net/fm10k: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 08/23] net/hns3: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 09/23] net/i40e: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 10/23] net/iavf: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 11/23] net/ice: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 12/23] net/ionic: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 13/23] net/ixgbe: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 14/23] net/mlx5: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 15/23] net/octeon_ep: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 16/23] net/sfc: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 17/23] net/thunderx: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 18/23] net/virtio: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 19/23] examples/dma: use mbuf descriptor accessor Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 20/23] mbuf: remove and stop using rte marker fields Tyler Retzlaff
2024-02-27  9:15     ` Morten Brørup
2024-02-27 10:03     ` Konstantin Ananyev
2024-02-27 15:18     ` David Marchand
2024-02-27 16:04       ` Morten Brørup
2024-02-27 17:23       ` Tyler Retzlaff
2024-02-28 10:42         ` David Marchand
2024-02-28 14:03       ` Dodji Seketeli
2024-02-28 14:43         ` David Marchand
2024-02-29 14:50           ` Dodji Seketeli
2024-02-28 14:18     ` David Marchand
2024-02-28 15:01       ` Morten Brørup
2024-02-28 15:33         ` David Marchand
2024-02-28 17:20       ` Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 21/23] security: remove " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 22/23] cryptodev: " Tyler Retzlaff
2024-02-27  5:41   ` [PATCH v6 23/23] devtools: forbid new use of rte marker typedefs Tyler Retzlaff
2024-03-20 22:01 ` [PATCH v7 0/4] remove use of RTE_MARKER fields in libraries Tyler Retzlaff
2024-03-20 22:01   ` [PATCH v7 1/4] net/i40e: use inline prefetch function Tyler Retzlaff
2024-03-26 10:16     ` Morten Brørup
2024-03-27 18:14       ` Tyler Retzlaff
2024-03-27 19:45         ` Morten Brørup
2024-03-20 22:01   ` [PATCH v7 2/4] mbuf: remove rte marker fields Tyler Retzlaff
2024-03-21 10:32     ` Bruce Richardson
2024-03-21 15:31       ` Tyler Retzlaff
2024-03-21 16:19         ` Morten Brørup
2024-03-26 11:12     ` Morten Brørup
2024-03-20 22:01   ` [PATCH v7 3/4] security: " Tyler Retzlaff
2024-03-26 10:28     ` Morten Brørup
2024-03-27 19:59       ` Tyler Retzlaff
2024-03-20 22:01   ` [PATCH v7 4/4] cryptodev: " Tyler Retzlaff
2024-03-26 10:31     ` Morten Brørup
2024-03-27 19:56 ` [PATCH v8 0/4] remove use of RTE_MARKER fields in libraries Tyler Retzlaff
2024-03-27 19:56   ` [PATCH v8 1/4] net/i40e: use inline prefetch function Tyler Retzlaff
2024-03-27 19:56   ` [PATCH v8 2/4] mbuf: remove rte marker fields Tyler Retzlaff
2024-03-27 19:56   ` [PATCH v8 3/4] security: " Tyler Retzlaff
2024-03-27 19:56   ` [PATCH v8 4/4] cryptodev: " Tyler Retzlaff
2024-04-02 20:08 ` [PATCH v9 0/4] remove use of RTE_MARKER fields in libraries Tyler Retzlaff
2024-04-02 20:08   ` [PATCH v9 1/4] net/i40e: use inline prefetch function Tyler Retzlaff
2024-04-02 20:08   ` [PATCH v9 2/4] mbuf: remove rte marker fields Tyler Retzlaff
2024-04-02 20:45     ` Stephen Hemminger
2024-04-02 20:51       ` Tyler Retzlaff
2024-04-02 20:08   ` [PATCH v9 3/4] security: " Tyler Retzlaff
2024-04-02 20:08   ` [PATCH v9 4/4] cryptodev: " Tyler Retzlaff
2024-04-03 17:53 ` [PATCH v10 0/4] remove use of RTE_MARKER fields in libraries Tyler Retzlaff
2024-04-03 17:53   ` [PATCH v10 1/4] net/i40e: use inline prefetch function Tyler Retzlaff
2024-04-03 21:49     ` Stephen Hemminger
2024-04-03 17:53   ` [PATCH v10 2/4] mbuf: remove rte marker fields Tyler Retzlaff
2024-04-03 19:32     ` Morten Brørup
2024-04-03 22:45       ` Tyler Retzlaff
2024-04-03 21:49     ` Stephen Hemminger
2024-04-03 17:53   ` [PATCH v10 3/4] security: " Tyler Retzlaff
2024-04-03 21:50     ` Stephen Hemminger
2024-04-03 17:53   ` [PATCH v10 4/4] cryptodev: " Tyler Retzlaff
2024-04-03 21:50     ` Stephen Hemminger
2024-04-04 17:51 ` [PATCH v11 0/4] remove use of RTE_MARKER fields in libraries Tyler Retzlaff
2024-04-04 17:51   ` [PATCH v11 1/4] net/i40e: use inline prefetch function Tyler Retzlaff
2024-04-04 17:51   ` [PATCH v11 2/4] mbuf: remove rte marker fields Tyler Retzlaff
2024-04-04 17:51   ` [PATCH v11 3/4] security: " Tyler Retzlaff
2024-04-04 17:51   ` [PATCH v11 4/4] cryptodev: " 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=98CBD80474FA8B44BF855DF32C47DC35E9F1D0@smartserver.smartshare.dk \
    --to=mb@smartsharesystems.com \
    --cc=andrew.boyer@amd.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=bruce.richardson@intel.com \
    --cc=chenbox@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=konstantin.v.ananyev@yandex.ru \
    --cc=maxime.coquelin@redhat.com \
    --cc=roretzla@linux.microsoft.com \
    /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).