From patchwork Fri Sep 4 13:56:39 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Monjalon X-Patchwork-Id: 6899 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 7741A8D9C; Fri, 4 Sep 2015 15:58:01 +0200 (CEST) Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com [209.85.212.180]) by dpdk.org (Postfix) with ESMTP id EA1A78D8F for ; Fri, 4 Sep 2015 15:57:59 +0200 (CEST) Received: by wicfx3 with SMTP id fx3so18946189wic.0 for ; Fri, 04 Sep 2015 06:57:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=1W5/ImcuyDXB7u8qyLv+Ij2rYHNjhpbKRV60fVpKK9A=; b=k6V+gCQuyzruNa/t1VCgCoy6PpENN5sl7r2sLibgCBWNX9oOfw+lAQlSbnmfyAwcaN 5x2KJ9RrrwKrpSIE7hRfF4Vao12ls1oVu7GsxckPLYoKNHoYoe7dXdAdagvtyB8p9IGc qyFhuEX8AgbHF1tGRRYjr4TQTEM6ot5zrJ051C+PIeYq4+v+OzAljGXAPemE2CDEIAof H4aPGt4/N7UhDxe+QNCoo3cQxweLviN7Ak9Hamw1WYCSW62SAZYPjEHfR3kHYRKXW0sd YLqgX2CZgmT+tluUBlmsrB/g/HuaKs2sNFjIWL2oezqAqelUNgXj7rX5wD1q50unEvcC iINQ== X-Gm-Message-State: ALoCoQmQND7jjKzANJXXoZZTyjhszLtlv9RKtOvI/NsBWTD/i846tiJ6xBKT3iq/32C3Undu7Ofn X-Received: by 10.194.242.36 with SMTP id wn4mr7370635wjc.29.1441375079724; Fri, 04 Sep 2015 06:57:59 -0700 (PDT) Received: from localhost.localdomain (136-92-190-109.dsl.ovh.fr. [109.190.92.136]) by smtp.gmail.com with ESMTPSA id h6sm4560873wiy.3.2015.09.04.06.57.58 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 04 Sep 2015 06:57:59 -0700 (PDT) From: Thomas Monjalon To: pablo.de.lara.guarch@intel.com Date: Fri, 4 Sep 2015 15:56:39 +0200 Message-Id: <1441375000-11716-3-git-send-email-thomas.monjalon@6wind.com> X-Mailer: git-send-email 2.5.1 In-Reply-To: <1441375000-11716-1-git-send-email-thomas.monjalon@6wind.com> References: <1441357542-9820-1-git-send-email-pablo.de.lara.guarch@intel.com> <1441375000-11716-1-git-send-email-thomas.monjalon@6wind.com> Cc: dev@dpdk.org Subject: [dpdk-dev] [PATCH v2 2/3] hash: remove deprecated function and macros X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Pablo de Lara 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 Signed-off-by: Thomas Monjalon --- 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;