projects
/
userspace-rcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 0.7.17
[userspace-rcu.git]
/
rculfhash.c
diff --git
a/rculfhash.c
b/rculfhash.c
index ea65611266afac9aa0d99a7357b4beb0cfcfed50..e17fd42778ca5c5f9d2967aabcca08c10991776b 100644
(file)
--- a/
rculfhash.c
+++ b/
rculfhash.c
@@
-1175,6
+1175,10
@@
void partition_resize_helper(struct cds_lfht *ht, unsigned long i,
int thread, ret;
unsigned long nr_threads;
int thread, ret;
unsigned long nr_threads;
+ assert(nr_cpus_mask != -1);
+ if (nr_cpus_mask < 0 || len < 2 * MIN_PARTITION_PER_THREAD)
+ goto fallback;
+
/*
* Note: nr_cpus_mask + 1 is always power of 2.
* We spawn just the number of threads we need to satisfy the minimum
/*
* Note: nr_cpus_mask + 1 is always power of 2.
* We spawn just the number of threads we need to satisfy the minimum
@@
-1267,13
+1271,6
@@
static
void init_table_populate(struct cds_lfht *ht, unsigned long i,
unsigned long len)
{
void init_table_populate(struct cds_lfht *ht, unsigned long i,
unsigned long len)
{
- assert(nr_cpus_mask != -1);
- if (nr_cpus_mask < 0 || len < 2 * MIN_PARTITION_PER_THREAD) {
- ht->flavor->thread_online();
- init_table_populate_partition(ht, i, 0, len);
- ht->flavor->thread_offline();
- return;
- }
partition_resize_helper(ht, i, len, init_table_populate_partition);
}
partition_resize_helper(ht, i, len, init_table_populate_partition);
}
@@
-1366,14
+1363,6
@@
void remove_table_partition(struct cds_lfht *ht, unsigned long i,
static
void remove_table(struct cds_lfht *ht, unsigned long i, unsigned long len)
{
static
void remove_table(struct cds_lfht *ht, unsigned long i, unsigned long len)
{
-
- assert(nr_cpus_mask != -1);
- if (nr_cpus_mask < 0 || len < 2 * MIN_PARTITION_PER_THREAD) {
- ht->flavor->thread_online();
- remove_table_partition(ht, i, 0, len);
- ht->flavor->thread_offline();
- return;
- }
partition_resize_helper(ht, i, len, remove_table_partition);
}
partition_resize_helper(ht, i, len, remove_table_partition);
}
@@
-1396,7
+1385,7
@@
void fini_table(struct cds_lfht *ht,
unsigned long len;
len = 1UL << (i - 1);
unsigned long len;
len = 1UL << (i - 1);
- dbg_printf("fini order %l
u
len: %lu\n", i, len);
+ dbg_printf("fini order %l
d
len: %lu\n", i, len);
/* Stop shrink if the resize target changes under us */
if (CMM_LOAD_SHARED(ht->resize_target) > (1UL << (i - 1)))
/* Stop shrink if the resize target changes under us */
if (CMM_LOAD_SHARED(ht->resize_target) > (1UL << (i - 1)))
This page took
0.023794 seconds
and
4
git commands to generate.