View Git repositories
branches with status:
Name Status Last Modified Last Commit
lp:~lttng/urcu/trunk 1 Development 2020-10-26 19:54:47 UTC 2020-10-26
1293. call_rcu: Fix race between rcu_barrie...

Author: Paul E. McKenney
Revision Date: 2020-10-26 19:54:47 UTC

call_rcu: Fix race between rcu_barrier() and call_rcu_data_free()

The current code can lose RCU callbacks at shutdown time, which can
result in hangs. This lossage can happen as follows:

o A thread invokes call_rcu_data_free(), which executes up through
        the wake_call_rcu_thread(). At this point, the call_rcu_data
        structure has been drained of callbacks, but is still on the
        call_rcu_data_list. Note that this thread does not hold the
        call_rcu_mutex.

o Another thread invokes rcu_barrier(), which traverses the
        call_rcu_data_list under the protection of call_rcu_mutex,
        a list which still includes the above newly drained structure.
        This thread therefore adds a callback to the newly drained
        call_rcu_data structure. It then releases call_rcu_mutex and
        enters a mystifying loop that does futex stuff.

o The first thread finishes executing call_rcu_data_free(),
        which acquires call_rcu_mutex just long enough to remove the
        newly drained call_rcu_data structure from call_rcu_data_list.
        Which causes one of the rcu_barrier() invocation's callbacks to
        be leaked.

o The second thread's rcu_barrier() invocation never returns
        resulting in a hang.

This commit therefore changes call_rcu_data_free() to acquire
call_rcu_mutex before checking the call_rcu_data structure for callbacks.
In the case where there are no callbacks, call_rcu_mutex is held across
both the check and the removal from call_rcu_data_list, thus preventing
rcu_barrier() from adding a callback in the meantime. In the case where
there are callbacks, call_rcu_mutex must be momentarily dropped across
the call to get_default_call_rcu_data(), which can itself acquire
call_rcu_mutex. This momentary drop is not a problem because any
callbacks that rcu_barrier() might queue during that period of time will
be moved to the default call_rcu_data structure, and the lock will be
held across the full time including moving those callbacks and removing
the call_rcu_data structure that was passed into call_rcu_data_free()
from call_rcu_data_list.

With this fix, a several-hundred-CPU test successfully completes more
than 5,000 executions. Without this fix, it fails within a few tens
of executions. Although the failures happen more quickly on larger
systems, in theory this could happen on a single-CPU system, courtesy
of preemption.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Cc: <lttng-dev@lists.lttng.org>
Cc: <linux-kernel@vger.kernel.org>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>

lp:~lttng/lttng-modules/trunk 1 Development 2020-10-21 16:24:40 UTC 2020-10-21
1395. Fix: type mismatch in clone instrumen...

Author: Mathieu Desnoyers
Revision Date: 2020-10-21 16:24:40 UTC

Fix: type mismatch in clone instrumentation

The data and metadata types should all agree to use "unsigned long",
else it triggers babeltrace trace parsing errors.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>

lp:~lttng/lttng-ust/lttng-ust 1 Development 2020-10-20 19:34:34 UTC 2020-10-20
2437. Cleanup: silent rules are always avai...

Author: Michael Jeanson
Revision Date: 2020-10-20 19:34:34 UTC

Cleanup: silent rules are always available in automake >= 1.12

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ib0acb195594e1b788c8c6d1b2cd879c3c271aef3

lp:~lttng/babeltrace/trunk 1 Development 2020-09-10 22:07:55 UTC 2020-09-10
4196. Reformat Python files with Black v20....

Author: .eepp
Revision Date: 2020-09-10 22:07:55 UTC

Reformat Python files with Black v20.8b1

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: I50a663f02800456ce2370383bbdaefa8e0ebabc1
Reviewed-on: https://review.lttng.org/c/babeltrace/+/4062
Tested-by: jenkins <jenkins@lttng.org>

lp:~lttng/lttng-ust/packaging-daily 1 Development 2016-11-30 00:07:22 UTC 2016-11-30
72. Bump version to 2.10~pre

Author: Simon Marchi
Revision Date: 2016-11-30 00:07:22 UTC

Bump version to 2.10~pre

lp:~lttng/babeltrace/packaging-daily 1 Development 2016-04-23 14:51:52 UTC 2016-04-23
40. Add libelf and libdw builddeps

Author: Michael Jeanson
Revision Date: 2016-04-23 14:51:52 UTC

Add libelf and libdw builddeps

lp:~lttng/lttng-tools/trunk 1 Development 2013-09-17 18:08:39 UTC 2013-09-17
1843. Tests: Add UST snapshots streaming te...

Author: Christian Babeux
Revision Date: 2013-09-17 18:08:39 UTC

Tests: Add UST snapshots streaming test with custom URI

Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>

17 of 7 results