[dpdk-dev] [PATCH v2 2/3] hash: remove deprecated function and macros

Thomas Monjalon thomas.monjalon at 6wind.com
Fri Sep 4 15:56:39 CEST 2015


From: Pablo de Lara <pablo.de.lara.guarch at intel.com>

The function rte_jhash2() was renamed rte_jhash_32b and
macros RTE_HASH_KEY_LENGTH_MAX and RTE_HASH_BUCKET_ENTRIES_MAX
were tagged as deprecated, so they can be removed in 2.2.

RTE_HASH_KEY_LENGTH is replaced in unit tests by an internal macro
for the memory allocation of all keys used.

The library version number is incremented.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
---
 app/test/test_hash.c                 |  7 ++++---
 app/test/test_hash_functions.c       |  4 ++--
 app/test/test_hash_perf.c            |  2 +-
 doc/guides/rel_notes/deprecation.rst |  5 -----
 doc/guides/rel_notes/release_2_2.rst |  5 ++++-
 lib/librte_hash/Makefile             |  2 +-
 lib/librte_hash/rte_hash.h           |  6 ------
 lib/librte_hash/rte_jhash.h          | 15 ++-------------
 8 files changed, 14 insertions(+), 32 deletions(-)

diff --git a/app/test/test_hash.c b/app/test/test_hash.c
index 7f8c0d3..4f2509d 100644
--- a/app/test/test_hash.c
+++ b/app/test/test_hash.c
@@ -66,6 +66,7 @@
 static rte_hash_function hashtest_funcs[] = {rte_jhash, rte_hash_crc};
 static uint32_t hashtest_initvals[] = {0};
 static uint32_t hashtest_key_lens[] = {0, 2, 4, 5, 6, 7, 8, 10, 11, 15, 16, 21, 31, 32, 33, 63, 64};
+#define MAX_KEYSIZE 64
 /******************************************************************************/
 #define LOCAL_FBK_HASH_ENTRIES_MAX (1 << 15)
 
@@ -238,7 +239,7 @@ test_crc32_hash_alg_equiv(void)
 static void run_hash_func_test(rte_hash_function f, uint32_t init_val,
 		uint32_t key_len)
 {
-	static uint8_t key[RTE_HASH_KEY_LENGTH_MAX];
+	static uint8_t key[MAX_KEYSIZE];
 	unsigned i;
 
 
@@ -1100,7 +1101,7 @@ test_hash_creation_with_good_parameters(void)
 static int test_average_table_utilization(void)
 {
 	struct rte_hash *handle;
-	uint8_t simple_key[RTE_HASH_KEY_LENGTH_MAX];
+	uint8_t simple_key[MAX_KEYSIZE];
 	unsigned i, j;
 	unsigned added_keys, average_keys_added = 0;
 	int ret;
@@ -1154,7 +1155,7 @@ static int test_hash_iteration(void)
 {
 	struct rte_hash *handle;
 	unsigned i;
-	uint8_t keys[NUM_ENTRIES][RTE_HASH_KEY_LENGTH_MAX];
+	uint8_t keys[NUM_ENTRIES][MAX_KEYSIZE];
 	const void *next_key;
 	void *next_data;
 	void *data[NUM_ENTRIES];
diff --git a/app/test/test_hash_functions.c b/app/test/test_hash_functions.c
index 8c7cf63..3ad6d80 100644
--- a/app/test/test_hash_functions.c
+++ b/app/test/test_hash_functions.c
@@ -85,7 +85,7 @@ static uint32_t hash_values_crc[2][10] = {{
  * from the array entries is tested.
  */
 #define HASHTEST_ITERATIONS 1000000
-
+#define MAX_KEYSIZE 64
 static rte_hash_function hashtest_funcs[] = {rte_jhash, rte_hash_crc};
 static uint32_t hashtest_initvals[] = {0, 0xdeadbeef};
 static uint32_t hashtest_key_lens[] = {
@@ -119,7 +119,7 @@ static void
 run_hash_func_perf_test(uint32_t key_len, uint32_t init_val,
 		rte_hash_function f)
 {
-	static uint8_t key[HASHTEST_ITERATIONS][RTE_HASH_KEY_LENGTH_MAX];
+	static uint8_t key[HASHTEST_ITERATIONS][MAX_KEYSIZE];
 	uint64_t ticks, start, end;
 	unsigned i, j;
 
diff --git a/app/test/test_hash_perf.c b/app/test/test_hash_perf.c
index a87fc80..9d53c14 100644
--- a/app/test/test_hash_perf.c
+++ b/app/test/test_hash_perf.c
@@ -140,7 +140,7 @@ shuffle_input_keys(unsigned table_index)
 {
 	unsigned i;
 	uint32_t swap_idx;
-	uint8_t temp_key[RTE_HASH_KEY_LENGTH_MAX];
+	uint8_t temp_key[MAX_KEYSIZE];
 	hash_sig_t temp_signature;
 	int32_t temp_position;
 
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 5f6079b..fffad80 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -13,11 +13,6 @@ Deprecation Notices
   There is no backward compatibility planned from release 2.2.
   All binaries will need to be rebuilt from release 2.2.
 
-* The Macros RTE_HASH_BUCKET_ENTRIES_MAX and RTE_HASH_KEY_LENGTH_MAX are
-  deprecated and will be removed with version 2.2.
-
-* The function rte_jhash2 is deprecated and should be removed.
-
 * The following fields have been deprecated in rte_eth_stats:
   imissed, ibadcrc, ibadlen, imcasts, fdirmatch, fdirmiss,
   tx_pause_xon, rx_pause_xon, tx_pause_xoff, rx_pause_xoff
diff --git a/doc/guides/rel_notes/release_2_2.rst b/doc/guides/rel_notes/release_2_2.rst
index abe57b4..682f468 100644
--- a/doc/guides/rel_notes/release_2_2.rst
+++ b/doc/guides/rel_notes/release_2_2.rst
@@ -21,6 +21,9 @@ API Changes
 
 * The deprecated ACL API ipv4vlan is removed.
 
+* The deprecated hash function rte_jhash2() is removed.
+  It was replaced by rte_jhash_32b().
+
 * The deprecated KNI functions are removed:
   rte_kni_create(), rte_kni_get_port_id() and rte_kni_info_get().
 
@@ -58,7 +61,7 @@ The libraries prepended with a plus sign were incremented in this version.
      librte_cmdline.so.1
      librte_distributor.so.1
    + librte_eal.so.2
-     librte_hash.so.1
+   + librte_hash.so.2
      librte_ip_frag.so.1
      librte_ivshmem.so.1
      librte_jobstats.so.1
diff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile
index 4bb3848..7902c2b 100644
--- a/lib/librte_hash/Makefile
+++ b/lib/librte_hash/Makefile
@@ -39,7 +39,7 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
 
 EXPORT_MAP := rte_hash_version.map
 
-LIBABIVER := 1
+LIBABIVER := 2
 
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_cuckoo_hash.c
diff --git a/lib/librte_hash/rte_hash.h b/lib/librte_hash/rte_hash.h
index 1cddc07..175c0bb 100644
--- a/lib/librte_hash/rte_hash.h
+++ b/lib/librte_hash/rte_hash.h
@@ -49,12 +49,6 @@ extern "C" {
 /** Maximum size of hash table that can be created. */
 #define RTE_HASH_ENTRIES_MAX			(1 << 30)
 
-/** @deprecated Maximum bucket size that can be created. */
-#define RTE_HASH_BUCKET_ENTRIES_MAX		4
-
-/** @deprecated Maximum length of key that can be used. */
-#define RTE_HASH_KEY_LENGTH_MAX			64
-
 /** Maximum number of characters in hash name.*/
 #define RTE_HASH_NAMESIZE			32
 
diff --git a/lib/librte_hash/rte_jhash.h b/lib/librte_hash/rte_jhash.h
index f9a8266..457f225 100644
--- a/lib/librte_hash/rte_jhash.h
+++ b/lib/librte_hash/rte_jhash.h
@@ -267,10 +267,10 @@ rte_jhash_2hashes(const void *key, uint32_t length, uint32_t *pc, uint32_t *pb)
 }
 
 /**
- * Same as rte_jhash2, but takes two seeds and return two uint32_ts.
+ * Same as rte_jhash_32b, but takes two seeds and return two uint32_ts.
  * pc and pb must be non-null, and *pc and *pb must both be initialized
  * with seeds. If you pass in (*pb)=0, the output (*pc) will be
- * the same as the return value from rte_jhash2.
+ * the same as the return value from rte_jhash_32b.
  *
  * @param k
  *   Key to calculate hash of.
@@ -335,17 +335,6 @@ rte_jhash_32b(const uint32_t *k, uint32_t length, uint32_t initval)
 }
 
 static inline uint32_t
-__attribute__ ((deprecated))
-rte_jhash2(const uint32_t *k, uint32_t length, uint32_t initval)
-{
-	uint32_t initval2 = 0;
-
-	rte_jhash_32b_2hashes(k, length, &initval, &initval2);
-
-	return initval;
-}
-
-static inline uint32_t
 __rte_jhash_3words(uint32_t a, uint32_t b, uint32_t c, uint32_t initval)
 {
 	a += RTE_JHASH_GOLDEN_RATIO + initval;
-- 
2.5.1



More information about the dev mailing list