summaryrefslogtreecommitdiffstats
path: root/include/linux/rhashtable.h
diff options
context:
space:
mode:
authorDaniel Borkmann <daniel@iogearbox.net>2015-02-25 10:31:54 -0500
committerDavid S. Miller <davem@davemloft.net>2015-02-27 16:06:02 -0500
commit4c4b52d9b2df45e8216d3e30b5452e4a364d2cac (patch)
tree3e4d9c6941729846c3c55c7f256197321311b3aa /include/linux/rhashtable.h
parent8331de75cb13fc907ceba78e698c42150e61dda9 (diff)
rhashtable: remove indirection for grow/shrink decision functions
Currently, all real users of rhashtable default their grow and shrink decision functions to rht_grow_above_75() and rht_shrink_below_30(), so that there's currently no need to have this explicitly selectable. It can/should be generic and private inside rhashtable until a real use case pops up. Since we can make this private, we'll save us this additional indirection layer and can improve insertion/deletion time as well. Reference: http://patchwork.ozlabs.org/patch/443040/ Suggested-by: David S. Miller <davem@davemloft.net> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/rhashtable.h')
-rw-r--r--include/linux/rhashtable.h13
1 files changed, 0 insertions, 13 deletions
diff --git a/include/linux/rhashtable.h b/include/linux/rhashtable.h
index cb2104be2135..d438eeb08bff 100644
--- a/include/linux/rhashtable.h
+++ b/include/linux/rhashtable.h
@@ -79,12 +79,6 @@ struct rhashtable;
79 * @locks_mul: Number of bucket locks to allocate per cpu (default: 128) 79 * @locks_mul: Number of bucket locks to allocate per cpu (default: 128)
80 * @hashfn: Function to hash key 80 * @hashfn: Function to hash key
81 * @obj_hashfn: Function to hash object 81 * @obj_hashfn: Function to hash object
82 * @grow_decision: If defined, may return true if table should expand
83 * @shrink_decision: If defined, may return true if table should shrink
84 *
85 * Note: when implementing the grow and shrink decision function, min/max
86 * shift must be enforced, otherwise, resizing watermarks they set may be
87 * useless.
88 */ 82 */
89struct rhashtable_params { 83struct rhashtable_params {
90 size_t nelem_hint; 84 size_t nelem_hint;
@@ -98,10 +92,6 @@ struct rhashtable_params {
98 size_t locks_mul; 92 size_t locks_mul;
99 rht_hashfn_t hashfn; 93 rht_hashfn_t hashfn;
100 rht_obj_hashfn_t obj_hashfn; 94 rht_obj_hashfn_t obj_hashfn;
101 bool (*grow_decision)(const struct rhashtable *ht,
102 size_t new_size);
103 bool (*shrink_decision)(const struct rhashtable *ht,
104 size_t new_size);
105}; 95};
106 96
107/** 97/**
@@ -193,9 +183,6 @@ int rhashtable_init(struct rhashtable *ht, struct rhashtable_params *params);
193void rhashtable_insert(struct rhashtable *ht, struct rhash_head *node); 183void rhashtable_insert(struct rhashtable *ht, struct rhash_head *node);
194bool rhashtable_remove(struct rhashtable *ht, struct rhash_head *node); 184bool rhashtable_remove(struct rhashtable *ht, struct rhash_head *node);
195 185
196bool rht_grow_above_75(const struct rhashtable *ht, size_t new_size);
197bool rht_shrink_below_30(const struct rhashtable *ht, size_t new_size);
198
199int rhashtable_expand(struct rhashtable *ht); 186int rhashtable_expand(struct rhashtable *ht);
200int rhashtable_shrink(struct rhashtable *ht); 187int rhashtable_shrink(struct rhashtable *ht);
201 188