All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joyce Kong <joyce.kong@arm.com>
To: thomas@monjalon.net, stephen@networkplumber.org,
	david.marchand@redhat.com, mb@smartsharesystems.com,
	jerinj@marvell.com, bruce.richardson@intel.com,
	ravi1.kumar@amd.com, rmody@marvell.com, shshaikh@marvell.com,
	xuanziyang2@huawei.com, cloud.wangxiaoyun@huawei.com,
	zhouguoyang@huawei.com, honnappa.nagarahalli@arm.com,
	gavin.hu@arm.com, phil.yang@arm.com
Cc: nd@arm.com, dev@dpdk.org
Subject: [dpdk-dev] [PATCH v9 1/6] lib/eal: implement the family of common bit operation APIs
Date: Fri, 24 Apr 2020 11:21:54 +0800	[thread overview]
Message-ID: <20200424032159.992-2-joyce.kong@arm.com> (raw)
In-Reply-To: <20200424032159.992-1-joyce.kong@arm.com>
In-Reply-To: <1571125801-45773-1-git-send-email-joyce.kong@arm.com>

Bitwise operation APIs are defined and used in a lot of PMDs,
which caused a huge code duplication. To reduce duplication,
this patch consolidates them into a common API family.

Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
---
 MAINTAINERS                         |   4 +
 doc/api/doxy-api-index.md           |   7 +-
 lib/librte_eal/include/meson.build  |   1 +
 lib/librte_eal/include/rte_bitops.h | 258 ++++++++++++++++++++++++++++
 4 files changed, 267 insertions(+), 3 deletions(-)
 create mode 100644 lib/librte_eal/include/rte_bitops.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 1bf00d7e5..c5c255994 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -241,6 +241,10 @@ M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
 F: lib/librte_eal/include/rte_bitmap.h
 F: app/test/test_bitmap.c
 
+Bitops
+M: Joyce Kong <joyce.kong@arm.com>
+F: lib/librte_eal/include/rte_bitops.h
+
 MCSlock - EXPERIMENTAL
 M: Phil Yang <phil.yang@arm.com>
 F: lib/librte_eal/include/generic/rte_mcslock.h
diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md
index dff496be0..52e2be31d 100644
--- a/doc/api/doxy-api-index.md
+++ b/doc/api/doxy-api-index.md
@@ -133,12 +133,12 @@ The public API headers are grouped by topics:
   [BPF]                (@ref rte_bpf.h)
 
 - **containers**:
+  [bitmap]             (@ref rte_bitmap.h),
   [mbuf]               (@ref rte_mbuf.h),
   [mbuf pool ops]      (@ref rte_mbuf_pool_ops.h),
   [ring]               (@ref rte_ring.h),
   [stack]              (@ref rte_stack.h),
-  [tailq]              (@ref rte_tailq.h),
-  [bitmap]             (@ref rte_bitmap.h)
+  [tailq]              (@ref rte_tailq.h)
 
 - **packet framework**:
   * [port]             (@ref rte_port.h):
@@ -165,7 +165,8 @@ The public API headers are grouped by topics:
   [random]             (@ref rte_random.h),
   [config file]        (@ref rte_cfgfile.h),
   [key/value args]     (@ref rte_kvargs.h),
-  [string]             (@ref rte_string_fns.h)
+  [string]             (@ref rte_string_fns.h),
+  [bitops]             (@ref rte_bitops.h)
 
 - **debug**:
   [jobstats]           (@ref rte_jobstats.h),
diff --git a/lib/librte_eal/include/meson.build b/lib/librte_eal/include/meson.build
index 6fd427494..3afb50a5b 100644
--- a/lib/librte_eal/include/meson.build
+++ b/lib/librte_eal/include/meson.build
@@ -6,6 +6,7 @@ includes += include_directories('.')
 headers += files(
 	'rte_alarm.h',
 	'rte_bitmap.h',
+	'rte_bitops.h',
 	'rte_branch_prediction.h',
 	'rte_bus.h',
 	'rte_class.h',
diff --git a/lib/librte_eal/include/rte_bitops.h b/lib/librte_eal/include/rte_bitops.h
new file mode 100644
index 000000000..4374f28e7
--- /dev/null
+++ b/lib/librte_eal/include/rte_bitops.h
@@ -0,0 +1,258 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2020 Arm Limited
+ */
+
+#ifndef _RTE_BITOPS_H_
+#define _RTE_BITOPS_H_
+
+/**
+ * @file
+ * Bit Operations
+ *
+ * This file defines a family of APIs for bit operations
+ * without enforcing memory ordering.
+ */
+
+#include <stdint.h>
+#include <rte_debug.h>
+#include <rte_compat.h>
+
+/*---------------------------- 32 bit operations ----------------------------*/
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Get the target bit from a 32-bit value without memory ordering.
+ *
+ * @param nr
+ *   The target bit to get.
+ * @param addr
+ *   The address holding the bit.
+ * @return
+ *   The target bit.
+ */
+__rte_experimental
+static inline uint32_t
+rte_get_bit32_relaxed(unsigned int nr, volatile uint32_t *addr)
+{
+	RTE_ASSERT(nr < 32);
+
+	uint32_t mask = UINT32_C(1) << nr;
+	return (*addr) & mask;
+}
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Set the target bit in a 32-bit value to 1 without memory ordering.
+ *
+ * @param nr
+ *   The target bit to set.
+ * @param addr
+ *   The address holding the bit.
+ */
+__rte_experimental
+static inline void
+rte_set_bit32_relaxed(unsigned int nr, volatile uint32_t *addr)
+{
+	RTE_ASSERT(nr < 32);
+
+	uint32_t mask = UINT32_C(1) << nr;
+	*addr = (*addr) | mask;
+}
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Clear the target bit in a 32-bit value to 0 without memory ordering.
+ *
+ * @param nr
+ *   The target bit to clear.
+ * @param addr
+ *   The address holding the bit.
+ */
+__rte_experimental
+static inline void
+rte_clear_bit32_relaxed(unsigned int nr, volatile uint32_t *addr)
+{
+	RTE_ASSERT(nr < 32);
+
+	uint32_t mask = UINT32_C(1) << nr;
+	*addr = (*addr) & (~mask);
+}
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Return the original bit from a 32-bit value, then set it to 1 without
+ * memory ordering.
+ *
+ * @param nr
+ *   The target bit to get and set.
+ * @param addr
+ *   The address holding the bit.
+ * @return
+ *   The original bit.
+ */
+__rte_experimental
+static inline uint32_t
+rte_test_and_set_bit32_relaxed(unsigned int nr, volatile uint32_t *addr)
+{
+	RTE_ASSERT(nr < 32);
+
+	uint32_t mask = UINT32_C(1) << nr;
+	uint32_t val = *addr;
+	*addr = val | mask;
+	return val & mask;
+}
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Return the original bit from a 32-bit value, then clear it to 0 without
+ * memory ordering.
+ *
+ * @param nr
+ *   The target bit to get and clear.
+ * @param addr
+ *   The address holding the bit.
+ * @return
+ *   The original bit.
+ */
+__rte_experimental
+static inline uint32_t
+rte_test_and_clear_bit32_relaxed(unsigned int nr, volatile uint32_t *addr)
+{
+	RTE_ASSERT(nr < 32);
+
+	uint32_t mask = UINT32_C(1) << nr;
+	uint32_t val = *addr;
+	*addr = val & (~mask);
+	return val & mask;
+}
+
+/*---------------------------- 64 bit operations ----------------------------*/
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Get the target bit from a 64-bit value without memory ordering.
+ *
+ * @param nr
+ *   The target bit to get.
+ * @param addr
+ *   The address holding the bit.
+ * @return
+ *   The target bit.
+ */
+__rte_experimental
+static inline uint64_t
+rte_get_bit64_relaxed(unsigned int nr, volatile uint64_t *addr)
+{
+	RTE_ASSERT(nr < 64);
+
+	uint64_t mask = UINT64_C(1) << nr;
+	return (*addr) & mask;
+}
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Set the target bit in a 64-bit value to 1 without memory ordering.
+ *
+ * @param nr
+ *   The target bit to set.
+ * @param addr
+ *   The address holding the bit.
+ */
+__rte_experimental
+static inline void
+rte_set_bit64_relaxed(unsigned int nr, volatile uint64_t *addr)
+{
+	RTE_ASSERT(nr < 64);
+
+	uint64_t mask = UINT64_C(1) << nr;
+	(*addr) = (*addr) | mask;
+}
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Clear the target bit in a 64-bit value to 0 without memory ordering.
+ *
+ * @param nr
+ *   The target bit to clear.
+ * @param addr
+ *   The address holding the bit.
+ */
+__rte_experimental
+static inline void
+rte_clear_bit64_relaxed(unsigned int nr, volatile uint64_t *addr)
+{
+	RTE_ASSERT(nr < 64);
+
+	uint64_t mask = UINT64_C(1) << nr;
+	*addr = (*addr) & (~mask);
+}
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Return the original bit from a 64-bit value, then set it to 1 without
+ * memory ordering.
+ *
+ * @param nr
+ *   The target bit to get and set.
+ * @param addr
+ *   The address holding the bit.
+ * @return
+ *   The original bit.
+ */
+__rte_experimental
+static inline uint64_t
+rte_test_and_set_bit64_relaxed(unsigned int nr, volatile uint64_t *addr)
+{
+	RTE_ASSERT(nr < 64);
+
+	uint64_t mask = UINT64_C(1) << nr;
+	uint64_t val = *addr;
+	*addr = val | mask;
+	return val;
+}
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Return the original bit from a 64-bit value, then clear it to 0 without
+ * memory ordering.
+ *
+ * @param nr
+ *   The target bit to get and clear.
+ * @param addr
+ *   The address holding the bit.
+ * @return
+ *   The original bit.
+ */
+__rte_experimental
+static inline uint64_t
+rte_test_and_clear_bit64_relaxed(unsigned int nr, volatile uint64_t *addr)
+{
+	RTE_ASSERT(nr < 64);
+
+	uint64_t mask = UINT64_C(1) << nr;
+	uint64_t val = *addr;
+	*addr = val & (~mask);
+	return val & mask;
+}
+
+#endif /* _RTE_BITOPS_H_ */
-- 
2.17.1


  parent reply	other threads:[~2020-04-24  3:22 UTC|newest]

Thread overview: 141+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-15  7:49 [dpdk-dev] [PATCH v1 0/5] implement common rte bit operation APIs in PMDs Joyce Kong
2019-10-15  7:49 ` [dpdk-dev] [PATCH v1 1/5] lib/eal: implement the family of rte bit operation APIs Joyce Kong
2019-10-15 16:53   ` Stephen Hemminger
2019-10-18  9:00     ` Joyce Kong (Arm Technology China)
2019-10-16  7:54   ` Jerin Jacob
2019-10-18  9:02     ` Joyce Kong (Arm Technology China)
2019-10-23  3:12       ` Joyce Kong (Arm Technology China)
2019-10-16 19:05   ` Stephen Hemminger
2019-10-17 13:32   ` [dpdk-dev] [PATCH v1 1/5] lib/eal: implement the family of rte bitoperation APIs Morten Brørup
2019-10-18  8:58     ` Joyce Kong (Arm Technology China)
2019-10-23  3:07       ` Joyce Kong (Arm Technology China)
2019-10-23  7:45         ` Morten Brørup
2019-10-23 17:30           ` Honnappa Nagarahalli
2019-10-24  3:38             ` Gavin Hu (Arm Technology China)
2019-11-01 13:48               ` Honnappa Nagarahalli
2019-11-03 15:45                 ` Gavin Hu (Arm Technology China)
2019-10-15  7:49 ` [dpdk-dev] [PATCH v1 2/5] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2019-10-15  7:49 ` [dpdk-dev] [PATCH v1 3/5] net/bnx2x: " Joyce Kong
2019-10-15  7:50 ` [dpdk-dev] [PATCH v1 4/5] net/hinic: " Joyce Kong
2019-10-15  7:50 ` [dpdk-dev] [PATCH v1 5/5] net/qede: " Joyce Kong
2019-10-15 16:51 ` [dpdk-dev] [PATCH v1 0/5] implement common rte bit operation APIs in PMDs Stephen Hemminger
2019-10-18  9:01   ` Joyce Kong (Arm Technology China)
2019-10-23  2:54 ` [dpdk-dev] [PATCH v2 0/6] " Joyce Kong
2019-10-25 13:14   ` David Marchand
2019-10-29 16:42   ` Thomas Monjalon
2019-10-30  9:55     ` Gavin Hu (Arm Technology China)
2019-10-30 10:17       ` Thomas Monjalon
2019-10-30 12:32       ` Jerin Jacob
2019-10-30 13:02         ` Morten Brørup
2019-10-31 10:39           ` Gavin Hu (Arm Technology China)
2019-10-23  2:54 ` [dpdk-dev] [PATCH v2 1/6] lib/eal: implement the family of rte bit operation APIs Joyce Kong
2019-10-23  3:09   ` Honnappa Nagarahalli
2019-10-23  4:56   ` Jerin Jacob
2019-10-23  7:46   ` Morten Brørup
2019-10-23  2:54 ` [dpdk-dev] [PATCH v2 2/6] test/iobitops: add io bit operation test case Joyce Kong
2019-10-23  2:54 ` [dpdk-dev] [PATCH v2 3/6] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2019-10-23  3:16   ` Honnappa Nagarahalli
2019-10-23  2:54 ` [dpdk-dev] [PATCH v2 4/6] net/bnx2x: " Joyce Kong
2019-10-23  2:54 ` [dpdk-dev] [PATCH v2 5/6] net/hinic: " Joyce Kong
2019-10-23  2:54 ` [dpdk-dev] [PATCH v2 6/6] net/qede: " Joyce Kong
2019-11-18 10:06 ` [dpdk-dev] [PATCH v3 0/6] implement common rte bit operation APIs in PMDs Joyce Kong
2019-11-18 10:06 ` [dpdk-dev] [PATCH v3 1/6] lib/eal: implement the family of rte bit operation APIs Joyce Kong
2019-11-18 10:52   ` [dpdk-dev] [PATCH v3 1/6] lib/eal: implement the family of rte bitoperation APIs Morten Brørup
2019-11-19  9:22     ` Joyce Kong (Arm Technology China)
2019-11-18 10:06 ` [dpdk-dev] [PATCH v3 2/6] test/bitops: add bit operation test case Joyce Kong
2019-11-18 10:06 ` [dpdk-dev] [PATCH v3 3/6] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2019-11-18 10:06 ` [dpdk-dev] [PATCH v3 4/6] net/bnx2x: " Joyce Kong
2019-11-18 10:06 ` [dpdk-dev] [PATCH v3 5/6] net/qede: " Joyce Kong
2019-11-18 10:06 ` [dpdk-dev] [PATCH v3 6/6] net/hinic: " Joyce Kong
2019-11-20 10:12 ` [dpdk-dev] [PATCH v4 0/6] implement common rte bit operation APIs in PMDs Joyce Kong
2019-11-20 10:12 ` [dpdk-dev] [PATCH v4 1/6] lib/eal: implement the family of rte bit operation APIs Joyce Kong
2019-11-20 13:40   ` [dpdk-dev] [PATCH v4 1/6] lib/eal: implement the family of rte bitoperation APIs Morten Brørup
2019-11-20 10:12 ` [dpdk-dev] [PATCH v4 2/6] test/bitops: add bit operation test case Joyce Kong
2019-11-20 10:12 ` [dpdk-dev] [PATCH v4 3/6] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2019-11-20 10:12 ` [dpdk-dev] [PATCH v4 4/6] net/bnx2x: " Joyce Kong
2019-11-20 10:12 ` [dpdk-dev] [PATCH v4 5/6] net/qede: " Joyce Kong
2019-11-20 10:12 ` [dpdk-dev] [PATCH v4 6/6] net/hinic: " Joyce Kong
2019-11-28  6:44 ` [dpdk-dev] [PATCH v5 0/6] implement common rte bit operation APIs in PMDs Joyce Kong
2019-11-28  6:44 ` [dpdk-dev] [PATCH v5 1/6] lib/eal: implement the family of rte bit operation APIs Joyce Kong
2019-11-28  6:44 ` [dpdk-dev] [PATCH v5 2/6] test/bitops: add bit operation test case Joyce Kong
2019-11-28  6:44 ` [dpdk-dev] [PATCH v5 3/6] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2019-12-02  6:09   ` Gavin Hu (Arm Technology China)
2019-12-02  9:12     ` Thomas Monjalon
2019-12-02  9:24       ` [dpdk-dev] [PATCH v5 3/6] net/axgbe: use common rte bitoperation " Morten Brørup
2019-12-02  9:30         ` Thomas Monjalon
2019-12-02 16:53         ` Stephen Hemminger
2019-12-03  6:52           ` Gavin Hu (Arm Technology China)
2019-11-28  6:44 ` [dpdk-dev] [PATCH v5 4/6] net/bnx2x: use common rte bit operation " Joyce Kong
2019-11-28  6:44 ` [dpdk-dev] [PATCH v5 5/6] net/qede: " Joyce Kong
2019-11-28  6:44 ` [dpdk-dev] [PATCH v5 6/6] net/hinic: " Joyce Kong
2019-12-18  6:00 ` [dpdk-dev] [PATCH v6 0/6] implement common rte bit operation APIs in PMDs Joyce Kong
2019-12-18  6:55   ` Gavin Hu
2020-01-17 13:03   ` David Marchand
2019-12-18  6:00 ` [dpdk-dev] [PATCH v6 1/6] lib/eal: implement the family of rte bit operation APIs Joyce Kong
2019-12-20  6:52   ` Honnappa Nagarahalli
2019-12-21 16:07     ` Honnappa Nagarahalli
2019-12-21 18:07       ` Stephen Hemminger
2019-12-23  5:04         ` Honnappa Nagarahalli
2019-12-23 16:36           ` Stephen Hemminger
2019-12-30  3:02             ` Gavin Hu
2020-01-07  0:44               ` Honnappa Nagarahalli
2020-01-07  1:26                 ` Stephen Hemminger
2020-01-07  4:41                   ` Honnappa Nagarahalli
2020-01-07  0:41             ` Honnappa Nagarahalli
2019-12-21 18:08       ` Stephen Hemminger
2019-12-23  5:45         ` Honnappa Nagarahalli
2019-12-23  8:59       ` Jerin Jacob
2019-12-18  6:00 ` [dpdk-dev] [PATCH v6 2/6] test/bitops: add bit operation test case Joyce Kong
2019-12-18  6:00 ` [dpdk-dev] [PATCH v6 3/6] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2019-12-18  6:00 ` [dpdk-dev] [PATCH v6 4/6] net/bnx2x: " Joyce Kong
2019-12-18  6:00 ` [dpdk-dev] [PATCH v6 5/6] net/qede: " Joyce Kong
2019-12-18  6:00 ` [dpdk-dev] [PATCH v6 6/6] net/hinic: " Joyce Kong
2020-03-09  9:54 ` [dpdk-dev] [PATCH v7 0/6] implement common rte bit operation APIs in PMDs Joyce Kong
2020-03-09  9:54 ` [dpdk-dev] [PATCH v7 1/6] lib/eal: implement the family of PMD bit operation APIs Joyce Kong
2020-03-09 15:50   ` Stephen Hemminger
2020-03-31 22:35   ` Thomas Monjalon
2020-04-01  8:27     ` Gavin Hu
2020-04-01  9:45       ` Thomas Monjalon
2020-04-02  7:20         ` Gavin Hu
2020-04-02  8:07           ` Thomas Monjalon
2020-04-02  8:11             ` Jerin Jacob
2020-04-02  9:02               ` Gavin Hu
2020-03-09  9:54 ` [dpdk-dev] [PATCH v7 2/6] test/pmdbitops: add PMD bit operation test case Joyce Kong
2020-03-09  9:54 ` [dpdk-dev] [PATCH v7 3/6] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2020-03-09  9:54 ` [dpdk-dev] [PATCH v7 4/6] net/bnx2x: " Joyce Kong
2020-03-09  9:54 ` [dpdk-dev] [PATCH v7 5/6] net/qede: " Joyce Kong
2020-03-09  9:54 ` [dpdk-dev] [PATCH v7 6/6] net/hinic: " Joyce Kong
2020-04-16  5:38 ` [dpdk-dev] [PATCH v8 0/6] implement common bit operation APIs Joyce Kong
2020-04-16  5:38 ` [dpdk-dev] [PATCH v8 1/6] lib/eal: implement the family of " Joyce Kong
2020-04-16 18:55   ` [dpdk-dev] [PATCH v8 1/6] lib/eal: implement the family of commonbit " Morten Brørup
2020-04-17  8:18     ` Joyce Kong
2020-04-17  9:38   ` [dpdk-dev] [PATCH v8 1/6] lib/eal: implement the family of common bit " Jerin Jacob
2020-04-20  2:46     ` Joyce Kong
2020-04-16  5:38 ` [dpdk-dev] [PATCH v8 2/6] test/bitops: add bit operation test case Joyce Kong
2020-04-16  5:38 ` [dpdk-dev] [PATCH v8 3/6] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2020-04-16  5:38 ` [dpdk-dev] [PATCH v8 4/6] net/bnx2x: " Joyce Kong
2020-04-16  5:38 ` [dpdk-dev] [PATCH v8 5/6] net/qede: " Joyce Kong
2020-04-16  5:38 ` [dpdk-dev] [PATCH v8 6/6] net/hinic: " Joyce Kong
2020-04-24  3:21 ` [dpdk-dev] [PATCH v9 0/6] implement common bit operation APIs Joyce Kong
2020-04-24  3:21 ` Joyce Kong [this message]
2020-04-24  8:08   ` [dpdk-dev] [PATCH v9 1/6] lib/eal: implement the family of " Thomas Monjalon
2020-04-26  2:07     ` Joyce Kong
2020-04-25 19:59   ` Thomas Monjalon
2020-04-26  7:18     ` Joyce Kong
2020-04-26  9:23       ` Thomas Monjalon
2020-04-24  3:21 ` [dpdk-dev] [PATCH v9 2/6] test/bitops: add bit operation test case Joyce Kong
2020-04-24  3:21 ` [dpdk-dev] [PATCH v9 3/6] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2020-04-24  3:21 ` [dpdk-dev] [PATCH v9 4/6] net/bnx2x: " Joyce Kong
2020-04-24  3:21 ` [dpdk-dev] [PATCH v9 5/6] net/qede: " Joyce Kong
2020-04-24  3:21 ` [dpdk-dev] [PATCH v9 6/6] net/hinic: " Joyce Kong
2020-04-27  7:58 ` [dpdk-dev] [PATCH v10 0/6] implement common bit operation APIs Joyce Kong
2020-06-16 12:36   ` Thomas Monjalon
2020-04-27  7:58 ` [dpdk-dev] [PATCH v10 1/6] lib/eal: implement the family of " Joyce Kong
2020-04-27  7:58 ` [dpdk-dev] [PATCH v10 2/6] test/bitops: add bit operation test case Joyce Kong
2020-04-27  7:58 ` [dpdk-dev] [PATCH v10 3/6] net/axgbe: use common rte bit operation APIs instead Joyce Kong
2020-04-27  7:58 ` [dpdk-dev] [PATCH v10 4/6] net/bnx2x: " Joyce Kong
2024-02-17 12:01   ` Mattias Rönnblom
2024-02-17 14:25     ` Thomas Monjalon
2020-04-27  7:58 ` [dpdk-dev] [PATCH v10 5/6] net/qede: " Joyce Kong
2020-04-27  7:58 ` [dpdk-dev] [PATCH v10 6/6] net/hinic: " Joyce Kong
2020-06-16 12:31   ` Thomas Monjalon

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=20200424032159.992-2-joyce.kong@arm.com \
    --to=joyce.kong@arm.com \
    --cc=bruce.richardson@intel.com \
    --cc=cloud.wangxiaoyun@huawei.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=gavin.hu@arm.com \
    --cc=honnappa.nagarahalli@arm.com \
    --cc=jerinj@marvell.com \
    --cc=mb@smartsharesystems.com \
    --cc=nd@arm.com \
    --cc=phil.yang@arm.com \
    --cc=ravi1.kumar@amd.com \
    --cc=rmody@marvell.com \
    --cc=shshaikh@marvell.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    --cc=xuanziyang2@huawei.com \
    --cc=zhouguoyang@huawei.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.