lp:~lttng/urcu/trunk

Created by Ubuntu LTTng on 2011-05-11 and last modified on 2019-11-08
Get this branch:
bzr branch lp:~lttng/urcu/trunk

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Ubuntu LTTng
Project:
Userspace RCU
Status:
Development

Import details

Import Status: Reviewed

This branch is an import of the HEAD branch of the Git repository at git://git.lttng.org/userspace-rcu.git.

The next import is scheduled to run in 5 hours.

Last successful import was 31 minutes ago.

Import started 31 minutes ago on izar and finished 31 minutes ago taking 20 seconds — see the log
Import started 6 hours ago on alnitak and finished 6 hours ago taking 20 seconds — see the log
Import started 12 hours ago on izar and finished 12 hours ago taking 15 seconds — see the log
Import started 18 hours ago on alnitak and finished 18 hours ago taking 20 seconds — see the log
Import started on 2019-11-11 on alnitak and finished on 2019-11-11 taking 20 seconds — see the log
Import started on 2019-11-11 on izar and finished on 2019-11-11 taking 20 seconds — see the log
Import started on 2019-11-11 on izar and finished on 2019-11-11 taking 15 seconds — see the log
Import started on 2019-11-11 on izar and finished on 2019-11-11 taking 20 seconds — see the log
Import started on 2019-11-10 on alnitak and finished on 2019-11-10 taking 20 seconds — see the log
Import started on 2019-11-10 on izar and finished on 2019-11-10 taking 20 seconds — see the log

Recent revisions

1284. By Michael Jeanson <email address hidden> on 2019-11-08

Require automake >= 1.12

The test suite LOG_DRIVER statement requires that automake >= 1.12 be used
during bootstrap.

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

1283. By Jérémie Galarneau <email address hidden> on 2019-10-28

cds_lfht_is_node_deleted parameter can be marked const

Mark the cds_lfht_node pointer parameter of cds_lfht_is_node_deleted
as const. The fact that this parameter is mutable makes it harder to
use liburcu in const-correct code.

Signed-off-by: Jérémie Galarneau <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

1282. By Mathieu Desnoyers on 2019-09-19

Fix: provide errno as argument to urcu_die()

commit 1a990de3add "Fix: rculfhash worker needs to unblock to SIGRCU"
provides "ret" (-1) as argument to urcu_die(), but should rather provide
errno.

Reported by Coverity:

** CID 1405700: Error handling issues (NEGATIVE_RETURNS) /src/rculfhash.c: 2171 in cds_lfht_worker_init()

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

1281. By hewenliang <email address hidden> on 2019-09-18

Fix: rculfhash worker needs to unblock to SIGRCU

In urcu-signal flavor, call_rcu_thread calls synchronize_rcu which
will send SIGRCU signal to all registed threads, and then loops to
wait need_mb to be cleared. However, the registed workqueue_thread
does not process the SIGRCU signal, and never clear the need_mb.
Based on above, call_rcu_thread and workqueue_thread will wait
forever for completion of the grace period: call_rcu_thread which holds
the rcu_registry_lock, waits for workqueue_thread to do cmm_smp_mb.
While workqueue thread never does cmm_smp_mb because of signal blocking,
and it will eventually wait to get rcu_registry_lock in do_resize_cb.

The phenomenon is as follows, which is easy to be triggered:

(gdb) t 2
[Switching to thread 2 (Thread 0xffff83c3b080 (LWP 27116))]
0 0x0000ffff845296c4 in poll () from /lib64/libc.so.6
(gdb) bt
0 0x0000ffff845296c4 in poll () from /lib64/libc.so.6
1 0x0000ffff8461b93c in force_mb_all_readers () at urcu.c:241
2 0x0000ffff8461c748 in smp_mb_master () at urcu.c:249
3 urcu_signal_synchronize_rcu () at urcu.c:445
4 0x0000ffff8461d004 in call_rcu_thread at urcu-call-rcu-impl.h:364
5 0x0000ffff845eb8bc in start_thread () from /lib64/libpthread.so.0
6 0x0000ffff845335cc in thread_start () from /lib64/libc.so.6
(gdb) t 3
[Switching to thread 3 (Thread 0xffff8443c080 (LWP 27191))]
0 0x0000ffff845f51c4 in __lll_lock_wait () from /lib64/libpthread.so.0
(gdb) bt
0 0x0000ffff845f51c4 in __lll_lock_wait () from /lib64/libpthread.so.0
1 0x0000ffff845ee048 in pthread_mutex_lock () from /lib64/libpthread.so.0
2 0x0000ffff8461b814 in mutex_lock ( <rcu_registry_lock>) at urcu.c:157
3 0x0000ffff8461b9e4 in urcu_signal_unregister_thread () at urcu.c:564
4 0x0000ffff8463e62c in do_resize_cb (work=0x11e2e790) at rculfhash.c:2042
5 0x0000ffff8463c940 in workqueue_thread (arg=0x11e1d260) at workqueue.c:228
6 0x0000ffff845eb8bc in start_thread () from /lib64/libpthread.so.0
7 0x0000ffff845335cc in thread_start () from /lib64/libc.so.6

So we should not block SIGRCU in workqueue thread to avoid blocking
forever in the grace period awaiting on the worker thread when using
urcu-signal flavor.

Signed-off-by: hewenliang <email address hidden>
Co-developed-by: Mathieu Desnoyers <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>
Cc: Paul E. McKenney <email address hidden>

1280. By Mathieu Desnoyers on 2019-06-04

Cleanup: test_perthreadlock_timing: handle pthread mutex errors

Found by Coverity:
CID 1357055 (#1 of 1): Unchecked return value (CHECKED_RETURN)
4. check_return: Calling pthread_mutex_lock without checking return value
(as is done elsewhere 44 out of 48 times).

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

1279. By Michael Jeanson <email address hidden> on 2019-06-03

Fix: SONAME bump to 6.1.0

In commit d6c78161aed9b2d550ce201b0a8cd5b3ee515ac8 we bumped the 'age'
part of the library version with the intention of keeping the same major
SONAME because we only introduced new symbols. However by bumping the
'age' and not the 'current' we substracted 1 to the major SONAME which
we did not intend. Seems like we missed this in testing.

Fix it by bumping the 'current' to end up with an SONAME of 6.1.0 which
is what we originally intended.

From the libtool manual for reference :

  Programs using the previous version may use the new version as drop-in
  replacement, but programs using the new version may use APIs not present
  in the previous one. In other words, a program linking against the new
  version may fail with “unresolved symbols” if linking against the old
  version at runtime: set revision to 0, bump current and age.

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

1278. By Mathieu Desnoyers on 2019-05-27

Cleanup: remove unused variable from configure.ac check

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

1277. By Mathieu Desnoyers on 2019-05-27

Fix: urcu/futex.h: users of struct timespec should include time.h

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

1276. By Mathieu Desnoyers on 2019-05-06

Version 0.11.0

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

1275. By Mathieu Desnoyers on 2019-05-06

Bump library version to 6:0:1

Public symbol were added between 0.10 and 0.11.

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

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers