projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleanup: move generic caa_get_cycles to arch/generic.h
[urcu.git]
/
rculfhash.c
diff --git
a/rculfhash.c
b/rculfhash.c
index 8a8ede7a6cadd1027a2c55c450ac3016f696fa6c..710751bc4bf022eccb037f49957b842c9161d67c 100644
(file)
--- a/
rculfhash.c
+++ b/
rculfhash.c
@@
-426,7
+426,7
@@
unsigned int fls_u32(uint32_t x)
{
int r;
{
int r;
-
asm
("bsrl %1,%0\n\t"
+
__asm__
("bsrl %1,%0\n\t"
"jnz 1f\n\t"
"movl $-1,%0\n\t"
"1:\n\t"
"jnz 1f\n\t"
"movl $-1,%0\n\t"
"1:\n\t"
@@
-442,7
+442,7
@@
unsigned int fls_u64(uint64_t x)
{
long r;
{
long r;
-
asm
("bsrq %1,%0\n\t"
+
__asm__
("bsrq %1,%0\n\t"
"jnz 1f\n\t"
"movq $-1,%0\n\t"
"1:\n\t"
"jnz 1f\n\t"
"movq $-1,%0\n\t"
"1:\n\t"
@@
-1176,6
+1176,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
@@
-1268,13
+1272,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);
}
@@
-1367,14
+1364,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);
}
@@
-1397,7
+1386,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.024414 seconds
and
4
git commands to generate.