Fix: reset vtid cache before releasing urcu locks
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 14 Jul 2016 21:47:08 +0000 (17:47 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 14 Jul 2016 21:47:08 +0000 (17:47 -0400)
When tracing pthread mutex lock/unlock, we need to reset the vtid
context cache before unlocking the urcu lock, else we have vtid/vpid
discrepancies.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
liblttng-ust/lttng-ust-comm.c

index a5a2cc2b689ab9331da4ff2de3575bf8edd901bc..a84316a9358caeda6be0138a439c3828dd979b8e 100644 (file)
@@ -1865,11 +1865,11 @@ void ust_after_fork_child(sigset_t *restore_sigset)
 {
        if (URCU_TLS(lttng_ust_nest_count))
                return;
+       lttng_context_vtid_reset();
        DBG("process %d", getpid());
        /* Release urcu mutexes */
        rcu_bp_after_fork_child();
        lttng_ust_cleanup(0);
-       lttng_context_vtid_reset();
        /* Release mutexes and reenable signals */
        ust_after_fork_common(restore_sigset);
        lttng_ust_init();
This page took 0.025927 seconds and 4 git commands to generate.