From: Mathieu Desnoyers Date: Wed, 21 Sep 2011 14:33:28 +0000 (-0400) Subject: rculfhash: min size only needed on shrink, take nr cpus into account X-Git-Tag: v0.7.0~43^2~129 X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=commitdiff_plain;h=c941bb9efd0c5b865988d46605e82c9b08c544d8 rculfhash: min size only needed on shrink, take nr cpus into account Signed-off-by: Mathieu Desnoyers --- diff --git a/rculfhash.c b/rculfhash.c index 0c2b3ab..359de13 100644 --- a/rculfhash.c +++ b/rculfhash.c @@ -566,12 +566,6 @@ void ht_count_add(struct cds_lfht *ht, unsigned long size) if ((count >> CHAIN_LEN_RESIZE_THRESHOLD) < size) return; dbg_printf("add set global %ld\n", count); - /* - * Don't resize table if the number of nodes is below a - * certain threshold. - */ - if (count < (1UL << COUNT_COMMIT_ORDER)) - return; cds_lfht_resize_lazy_count(ht, size, count >> (CHAIN_LEN_TARGET - 1)); } @@ -602,10 +596,10 @@ void ht_count_del(struct cds_lfht *ht, unsigned long size) return; dbg_printf("del set global %ld\n", count); /* - * Don't resize table if the number of nodes is below a + * Don't shrink table if the number of nodes is below a * certain threshold. */ - if (count < (1UL << COUNT_COMMIT_ORDER)) + if (count < (1UL << COUNT_COMMIT_ORDER) * (nr_cpus_mask + 1)) return; cds_lfht_resize_lazy_count(ht, size, count >> (CHAIN_LEN_TARGET - 1));