urcu:stable-0.10

Last commit made on 2018-01-23
Get this branch:
git clone -b stable-0.10 https://git.launchpad.net/urcu

Branch merges

Branch information

Name:
stable-0.10
Repository:
lp:urcu

Recent commits

9353ac3... by Mathieu Desnoyers on 2018-01-23

Version 0.10.1

Signed-off-by: Mathieu Desnoyers <email address hidden>

9573e2c... by Michael Jeanson <email address hidden> on 2017-07-28

Fix: don't use overlapping mmap mappings on Cygwin

The allocation scheme used by the mmap based RCU hash table is to make a
large unaccessible mapping to reserve memory without allocating it.
Then smaller chunks are allocated by overlapping read/write mappings which
do allocate memory. Deallocation is done by an overlapping unaccessible
mapping.

This scheme was tested on Linux, macOS and Solaris. However, on Cygwin the
mmap wrapper is based on the Windows NtMapViewOfSection API which doesn't
support overlapping mappings.

An alternative to the overlapping mappings is to use mprotect to change the
protection on chunks of the large mapping, read/write to allocate and none
to deallocate. This works perfecty on Cygwin and Solaris but on Linux a
call to madvise is also required to deallocate and it just doesn't work on
macOS.

For this reason, we keep to original scheme on all platforms except Cygwin.

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

11486a1... by Mathieu Desnoyers on 2017-09-06

Fix: don't use membarrier SHARED syscall command in liburcu-bp

One main user of liburcu-bp (lttng-ust) invokes synchronize_rcu()
repeatedly, without batching (does not use call_rcu).

Those delays introduced by sys_membarrier SHARED command significantly
impacts application startup time. Therefore, revert to not using the
membarrier SHARED command.

Signed-off-by: Mathieu Desnoyers <email address hidden>

7ffe20a... by Michael Jeanson <email address hidden> on 2017-07-20

Tests fix: add missing Cygwin thread id

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

b08a34d... by Michael Jeanson <email address hidden> on 2017-07-20

Fix: assignment from incompatible pointer type warnings

On some platforms, mmap returns a caddr_t pointer which generates
compiler warnings, cast to the proper pointer type to eliminate them.

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

9bc66fb... by Michael Jeanson <email address hidden> on 2017-07-20

Tests fix: unused variable warnings

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

c01761c... by Michael Jeanson <email address hidden> on 2017-07-14

Fix: add missing m68k headers to dist

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

0c8cf6a... by Mathieu Desnoyers on 2017-06-12

Version 0.10.0

Signed-off-by: Mathieu Desnoyers <email address hidden>

f9f870e... by Mathieu Desnoyers on 2017-06-08

Bump library soname due to urcu flavor structure change

Signed-off-by: Mathieu Desnoyers <email address hidden>

5ffcaee... by Mathieu Desnoyers on 2017-06-08

Cleanup: use mutex_lock() wrapper in rculfhash

Fixes this coverity issue:

*** CID 1375952: Error handling issues (CHECKED_RETURN)
/src/rculfhash.c: 1950 in cds_lfht_resize()
1944 }
1945
1946 void cds_lfht_resize(struct cds_lfht *ht, unsigned long new_size)
1947 {
1948 resize_target_update_count(ht, new_size);
1949 CMM_STORE_SHARED(ht->resize_initiated, 1);
>>> CID 1375952: Error handling issues (CHECKED_RETURN)
>>> Calling "pthread_mutex_lock" without checking return value (as is done elsewhere 44 out of 50 times).
1950 pthread_mutex_lock(&ht->resize_mutex);
1951 _do_cds_lfht_resize(ht);
1952 pthread_mutex_unlock(&ht->resize_mutex);
1953 }
1954
1955 static

Signed-off-by: Mathieu Desnoyers <email address hidden>