mempool: fix alignment of memzone length when populating
[dpdk.git] / lib / librte_hash / rte_cuckoo_hash_x86.h
index fa5630b..2c5b017 100644 (file)
@@ -1,34 +1,5 @@
-/*-
- *   BSD LICENSE
- *
- *   Copyright(c) 2016 Intel Corporation. All rights reserved.
- *   All rights reserved.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following conditions
- *   are met:
- *
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in
- *       the documentation and/or other materials provided with the
- *       distribution.
- *     * Neither the name of Intel Corporation nor the names of its
- *       contributors may be used to endorse or promote products derived
- *       from this software without specific prior written permission.
- *
- *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2016 Intel Corporation
  */
 
 /* rte_cuckoo_hash_x86.h
@@ -53,10 +24,9 @@ rte_hash_cuckoo_insert_mw_tm(struct rte_hash_bucket *prim_bkt,
                        */
                        for (i = 0; i < RTE_HASH_BUCKET_ENTRIES; i++) {
                                /* Check if slot is available */
-                               if (likely(prim_bkt->signatures[i].sig ==
-                                               NULL_SIGNATURE)) {
-                                       prim_bkt->signatures[i].current = sig;
-                                       prim_bkt->signatures[i].alt = alt_hash;
+                               if (likely(prim_bkt->key_idx[i] == EMPTY_SLOT)) {
+                                       prim_bkt->sig_current[i] = sig;
+                                       prim_bkt->sig_alt[i] = alt_hash;
                                        prim_bkt->key_idx[i] = new_idx;
                                        break;
                                }
@@ -102,7 +72,7 @@ rte_hash_cuckoo_move_insert_mw_tm(const struct rte_hash *h,
                                prev_slot = curr_node->prev_slot;
 
                                prev_alt_bkt_idx
-                                       = prev_bkt->signatures[prev_slot].alt
+                                       = prev_bkt->sig_alt[prev_slot]
                                            & h->bucket_bitmask;
 
                                if (unlikely(&h->buckets[prev_alt_bkt_idx]
@@ -114,10 +84,10 @@ rte_hash_cuckoo_move_insert_mw_tm(const struct rte_hash *h,
                                 * Cuckoo insert to move elements back to its
                                 * primary bucket if available
                                 */
-                               curr_bkt->signatures[curr_slot].alt =
-                                   prev_bkt->signatures[prev_slot].current;
-                               curr_bkt->signatures[curr_slot].current =
-                                   prev_bkt->signatures[prev_slot].alt;
+                               curr_bkt->sig_alt[curr_slot] =
+                                   prev_bkt->sig_current[prev_slot];
+                               curr_bkt->sig_current[curr_slot] =
+                                   prev_bkt->sig_alt[prev_slot];
                                curr_bkt->key_idx[curr_slot]
                                    = prev_bkt->key_idx[prev_slot];
 
@@ -126,8 +96,8 @@ rte_hash_cuckoo_move_insert_mw_tm(const struct rte_hash *h,
                                curr_bkt = curr_node->bkt;
                        }
 
-                       curr_bkt->signatures[curr_slot].current = sig;
-                       curr_bkt->signatures[curr_slot].alt = alt_hash;
+                       curr_bkt->sig_current[curr_slot] = sig;
+                       curr_bkt->sig_alt[curr_slot] = alt_hash;
                        curr_bkt->key_idx[curr_slot] = new_idx;
 
                        rte_xend();
@@ -168,10 +138,11 @@ rte_hash_cuckoo_make_space_mw_tm(const struct rte_hash *h,
 
        /* Cuckoo bfs Search */
        while (likely(tail != head && head <
-                                       queue + RTE_HASH_BFS_QUEUE_MAX_LEN - 4)) {
+                                       queue + RTE_HASH_BFS_QUEUE_MAX_LEN -
+                                       RTE_HASH_BUCKET_ENTRIES)) {
                curr_bkt = tail->bkt;
                for (i = 0; i < RTE_HASH_BUCKET_ENTRIES; i++) {
-                       if (curr_bkt->signatures[i].sig == NULL_SIGNATURE) {
+                       if (curr_bkt->key_idx[i] == EMPTY_SLOT) {
                                if (likely(rte_hash_cuckoo_move_insert_mw_tm(h,
                                                tail, i, sig,
                                                alt_hash, new_idx) == 0))
@@ -179,7 +150,7 @@ rte_hash_cuckoo_make_space_mw_tm(const struct rte_hash *h,
                        }
 
                        /* Enqueue new node and keep prev node info */
-                       alt_bkt = &(h->buckets[curr_bkt->signatures[i].alt
+                       alt_bkt = &(h->buckets[curr_bkt->sig_alt[i]
                                                    & h->bucket_bitmask]);
                        head->bkt = alt_bkt;
                        head->prev = tail;