patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Luca Boccassi <bluca@debian.org>
To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Cc: dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'eal: introduce rte version of fls' has been queued to LTS release 16.11.9
Date: Mon, 19 Nov 2018 12:25:18 +0000	[thread overview]
Message-ID: <20181119122538.14207-1-bluca@debian.org> (raw)
In-Reply-To: <20181108180111.25873-1-bluca@debian.org>

Hi,

FYI, your patch has been queued to LTS release 16.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/21/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Note that this patch has been cherry-picked to allow the backporting of
Fixes: 5d08fecdd39f ("eal: fix build")

Thanks.

Luca Boccassi

---
>From 35072ede1f49874059f563c0b2be8e1d8f56691b Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Wed, 7 Nov 2018 06:59:03 +0000
Subject: [PATCH] eal: introduce rte version of fls

[ upstream commit 3a6f2c50b9dc27a958af87d7ca9533b51a36477b ]

The function returns the last (most-significant) bit set.
Added unit testcase to verify rte_fls_u32().

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
 app/test/test_common.c                     | 32 ++++++++++++++++++++++
 lib/librte_eal/common/include/rte_common.h | 17 ++++++++++++
 2 files changed, 49 insertions(+)

diff --git a/app/test/test_common.c b/app/test/test_common.c
index 8effa2f9e..afd2b99f9 100644
--- a/app/test/test_common.c
+++ b/app/test/test_common.c
@@ -158,6 +158,37 @@ test_align(void)
 	return 0;
 }
 
+static int
+test_fls(void)
+{
+	struct fls_test_vector {
+		uint32_t arg;
+		int rc;
+	};
+	int expected, rc;
+	uint32_t i, arg;
+
+	const struct fls_test_vector test[] = {
+		{0x0, 0},
+		{0x1, 1},
+		{0x4000, 15},
+		{0x80000000, 32},
+	};
+
+	for (i = 0; i < RTE_DIM(test); i++) {
+		arg = test[i].arg;
+		rc = rte_fls_u32(arg);
+		expected = test[i].rc;
+		if (rc != expected) {
+			printf("Wrong rte_fls_u32(0x%x) rc=%d, expected=%d\n",
+				arg, rc, expected);
+			return TEST_FAILED;
+		}
+	}
+
+	return 0;
+}
+
 static int
 test_common(void)
 {
@@ -165,6 +196,7 @@ test_common(void)
 	ret |= test_align();
 	ret |= test_macros(0);
 	ret |= test_misc();
+	ret |= test_fls();
 
 	return ret;
 }
diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
index f5e2f8861..9ae584717 100644
--- a/lib/librte_eal/common/include/rte_common.h
+++ b/lib/librte_eal/common/include/rte_common.h
@@ -326,6 +326,23 @@ rte_bsf32(uint32_t v)
 	return (uint32_t)__builtin_ctz(v);
 }
 
+/**
+ * Return the last (most-significant) bit set.
+ *
+ * @note The last (most significant) bit is at position 32.
+ * @note rte_fls_u32(0) = 0, rte_fls_u32(1) = 1, rte_fls_u32(0x80000000) = 32
+ *
+ * @param x
+ *     The input parameter.
+ * @return
+ *     The last (most-significant) bit set, or 0 if the input is 0.
+ */
+static inline int
+rte_fls_u32(uint32_t x)
+{
+	return (x == 0) ? 0 : 32 - __builtin_clz(x);
+}
+
 #ifndef offsetof
 /** Return the offset of a field in a structure. */
 #define offsetof(TYPE, MEMBER)  __builtin_offsetof (TYPE, MEMBER)
-- 
2.19.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-19 12:15:18.168290468 +0000
+++ 0002-eal-introduce-rte-version-of-fls.patch	2018-11-19 12:15:18.067611434 +0000
@@ -1,52 +1,24 @@
-From 3a6f2c50b9dc27a958af87d7ca9533b51a36477b Mon Sep 17 00:00:00 2001
+From 35072ede1f49874059f563c0b2be8e1d8f56691b Mon Sep 17 00:00:00 2001
 From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
 Date: Wed, 7 Nov 2018 06:59:03 +0000
 Subject: [PATCH] eal: introduce rte version of fls
 
+[ upstream commit 3a6f2c50b9dc27a958af87d7ca9533b51a36477b ]
+
 The function returns the last (most-significant) bit set.
 Added unit testcase to verify rte_fls_u32().
 
 Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
 ---
- lib/librte_eal/common/include/rte_common.h | 19 +++++++++++++
- test/test/test_common.c                    | 32 ++++++++++++++++++++++
- 2 files changed, 51 insertions(+)
+ app/test/test_common.c                     | 32 ++++++++++++++++++++++
+ lib/librte_eal/common/include/rte_common.h | 17 ++++++++++++
+ 2 files changed, 49 insertions(+)
 
-diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
-index cba7bbc1d..87f0f6302 100644
---- a/lib/librte_eal/common/include/rte_common.h
-+++ b/lib/librte_eal/common/include/rte_common.h
-@@ -473,6 +473,25 @@ rte_log2_u32(uint32_t v)
- 	return rte_bsf32(v);
- }
- 
-+
-+/**
-+ * Return the last (most-significant) bit set.
-+ *
-+ * @note The last (most significant) bit is at position 32.
-+ * @note rte_fls_u32(0) = 0, rte_fls_u32(1) = 1, rte_fls_u32(0x80000000) = 32
-+ *
-+ * @param x
-+ *     The input parameter.
-+ * @return
-+ *     The last (most-significant) bit set, or 0 if the input is 0.
-+ */
-+static inline int
-+rte_fls_u32(uint32_t x)
-+{
-+	return (x == 0) ? 0 : 32 - __builtin_clz(x);
-+}
-+
-+
- #ifndef offsetof
- /** Return the offset of a field in a structure. */
- #define offsetof(TYPE, MEMBER)  __builtin_offsetof (TYPE, MEMBER)
-diff --git a/test/test/test_common.c b/test/test/test_common.c
-index 7a67e458e..c6d17baae 100644
---- a/test/test/test_common.c
-+++ b/test/test/test_common.c
-@@ -188,6 +188,37 @@ test_log2(void)
+diff --git a/app/test/test_common.c b/app/test/test_common.c
+index 8effa2f9e..afd2b99f9 100644
+--- a/app/test/test_common.c
++++ b/app/test/test_common.c
+@@ -158,6 +158,37 @@ test_align(void)
  	return 0;
  }
  
@@ -84,14 +56,42 @@
  static int
  test_common(void)
  {
-@@ -196,6 +227,7 @@ test_common(void)
+@@ -165,6 +196,7 @@ test_common(void)
+ 	ret |= test_align();
  	ret |= test_macros(0);
  	ret |= test_misc();
- 	ret |= test_log2();
 +	ret |= test_fls();
  
  	return ret;
  }
+diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
+index f5e2f8861..9ae584717 100644
+--- a/lib/librte_eal/common/include/rte_common.h
++++ b/lib/librte_eal/common/include/rte_common.h
+@@ -326,6 +326,23 @@ rte_bsf32(uint32_t v)
+ 	return (uint32_t)__builtin_ctz(v);
+ }
+ 
++/**
++ * Return the last (most-significant) bit set.
++ *
++ * @note The last (most significant) bit is at position 32.
++ * @note rte_fls_u32(0) = 0, rte_fls_u32(1) = 1, rte_fls_u32(0x80000000) = 32
++ *
++ * @param x
++ *     The input parameter.
++ * @return
++ *     The last (most-significant) bit set, or 0 if the input is 0.
++ */
++static inline int
++rte_fls_u32(uint32_t x)
++{
++	return (x == 0) ? 0 : 32 - __builtin_clz(x);
++}
++
+ #ifndef offsetof
+ /** Return the offset of a field in a structure. */
+ #define offsetof(TYPE, MEMBER)  __builtin_offsetof (TYPE, MEMBER)
 -- 
 2.19.1
 

  parent reply	other threads:[~2018-11-19 12:25 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-27  8:43 [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' " Luca Boccassi
2018-09-27  8:43 ` [dpdk-stable] patch 'net/nfp: fix live MAC changes not supported' " Luca Boccassi
2018-09-27  8:43 ` [dpdk-stable] patch 'doc: fix wrong usage of bind command' " Luca Boccassi
2018-09-27  8:43 ` [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' " Luca Boccassi
2018-09-27  8:44 ` [dpdk-stable] patch 'vhost-user: drop connection on message handling failures' " Luca Boccassi
2018-09-27  8:44 ` [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' " Luca Boccassi
2018-09-27  8:44 ` [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' " Luca Boccassi
2018-09-27  8:44 ` [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' " Luca Boccassi
2018-10-03 16:21 ` [dpdk-stable] patch 'acl: forbid rule with priority zero' " Luca Boccassi
2018-10-03 16:52   ` [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'ethdev: fix doxygen comment to be with structure' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'net/virtio: add missing supported features' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'vhost: fix corner case for enqueue operation' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'net/bonding: stop and deactivate slaves on stop' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'test/crypto: fix number of queue pairs' " Luca Boccassi
2018-10-15 11:51   ` [dpdk-stable] patch 'net/i40e: fix send admin queue command before init' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/i40e/base: fix partition id calculation for X722' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/i40e/base: properly clean resources' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/i40e/base: gracefully clean the " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/i40e/base: correct global reset timeout calculation' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/ixgbe: wait longer for link after fiber MAC setup' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/enic: do not use non-standard integer types' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/enic: set Rx VLAN offload flag for non-stripped packets' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/nfp: fix RSS' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnx2x: fix logging to include device name' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnx2x: fix to disable further interrupts' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnx2x: fix call to link handling periodic function' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnx2x: fix to add PHY lock' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: fix uninitialized pointer access in Tx' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: set MAC filtering as outer for non tunnel frames' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: set a VNIC as default only once' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: remove excess log messages' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: reduce polling interval for valid bit' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'app/testpmd: fix csum parse-tunnel command invocation' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'app/testpmd: fix displaying RSS hash functions' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'doc: add VFIO in ENA guide' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'app/testpmd: fix duplicate exit' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/e1000: do not error out if Rx drop enable is set' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'eal: use correct data type for bitmap slab operations' " Luca Boccassi
2018-10-29 12:53     ` [dpdk-stable] patch 'net/e1000: do not error out if Rx drop enable is set' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'eal: use correct data type for bitmap slab operations' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'vhost: fix payload size of reply' " Luca Boccassi
2018-10-29 13:12         ` Ilya Maximets
2018-10-29 16:32           ` Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'kvargs: fix processing a null list' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'test/hash: fix bucket size in perf test' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'hash: fix key store element alignment' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'kni: fix build on Linux 4.19' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'kni: fix kernel FIFO synchronization' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'test/kni: check module dependency' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'hash: remove unnecessary pause' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'kni: fix build on Linux < 3.14' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/i40e: keep promiscuous on if allmulticast is enabled' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/i40e: enable loopback function for X722 MAC' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/i40e: update Tx offload mask' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/ixgbe: " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/ena: fix passing RSS hash to mbuf' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'doc: fix typo in testpmd guide' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'ip_frag: fix overflow in key comparison' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'eal/linux: fix memory leak of logid' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'fix global variable issues' " Luca Boccassi
2018-11-08 18:00         ` [dpdk-stable] patch 'net/virtio: register/unregister intr handler on start/stop' " Luca Boccassi
2018-11-08 18:00           ` [dpdk-stable] patch 'eal/linux: handle UIO read failure in interrupt handler' " Luca Boccassi
2018-11-08 18:00           ` [dpdk-stable] patch 'mk: disable gcc AVX512F support' " Luca Boccassi
2018-11-09  6:52             ` Christian Ehrhardt
2018-11-09 10:48               ` Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'eal: fix build with gcc 9.0' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'net/vhost: fix parameters string' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'net/virtio-user: do not reset owner when driver resets' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'net: fix build with pedantic' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'net/igb: update Tx offload mask' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'ip_frag: check fragment length of incoming packet' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'ip_frag: use key length for key comparison' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'bus/pci: compare kernel driver instead of interrupt handler' " Luca Boccassi
2018-11-12 18:35             ` Luca Boccassi
2018-11-14 10:02               ` Alejandro Lucero
2018-11-14 11:07                 ` Luca Boccassi
2018-11-14 11:36                   ` Alejandro Lucero
2018-11-15 17:34                     ` Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'bus/pci: fix config r/w access' " Luca Boccassi
2018-11-08 18:18             ` Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'test/hash: fix build' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'igb_uio: issue FLR during open and release of device file' " Luca Boccassi
2018-11-08 18:16             ` Luca Boccassi
2018-11-09  9:32               ` Shijith Thotton
2018-11-09 10:43                 ` Luca Boccassi
2018-11-09 14:26               ` [dpdk-stable] patch 'igb_uio: remove device reset in open' " Luca Boccassi
2018-11-09 14:26                 ` [dpdk-stable] patch 'igb_uio: remove device reset in release' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' " Luca Boccassi
2018-11-19 12:25           ` Luca Boccassi [this message]
2018-11-19 12:25             ` [dpdk-stable] patch 'eal: fix build' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'pci: fix parsing of address without function number' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/e1000/base: fix uninitialized variable' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/mlx5: fix build on PPC64' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/thunderx: fix Tx desc corruption in scatter-gather mode' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/virtio-user: fix typo in error message' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/virtio: fix unchecked return value' " Luca Boccassi
2018-11-19 12:48               ` Tiwei Bie
2018-11-19 12:52                 ` Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'vhost: remove unneeded null pointer check' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/bnx2x: fix VF link state update' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/bonding: fix crash when stopping mode 4 port' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'app/testpmd: fix L4 length for UDP checksum' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'ethdev: fix invalid configuration after failure' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/ixgbevf: fix link state' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'test/reorder: fix out of bound access' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/i40e: fix X710 Rx after reading some registers' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/ixgbe: fix maximum wait time in comment' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'examples/ipv4_multicast: fix leak of cloned packets' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'usertools: check for lspci dependency' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'doc: fix formatting in IP reassembly app " Luca Boccassi
2018-11-26 12:49             ` [dpdk-stable] patch 'eal: fix build with -O1' " Luca Boccassi
2018-11-26 12:49               ` [dpdk-stable] patch 'kni: fix possible uninitialized variable' " Luca Boccassi
2018-11-26 12:49               ` [dpdk-stable] patch 'config: enable more than 128 cores for arm64' " Luca Boccassi
2018-11-26 12:49               ` [dpdk-stable] patch 'net/ixgbe: fix TDH register write' " Luca Boccassi
2018-11-26 12:49               ` [dpdk-stable] patch 'bus/pci: fix allocation of device path' " Luca Boccassi
2018-11-28 10:11               ` [dpdk-stable] patch 'fix dpdk.org URLs' " Luca Boccassi

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=20181119122538.14207-1-bluca@debian.org \
    --to=bluca@debian.org \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=stable@dpdk.org \
    /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).