View Bazaar branches
Get this repository:
git clone https://git.launchpad.net/urcu

Branches

Name Last Modified Last Commit
master 2018-12-18 19:24:45 UTC 5 hours ago
Cleanup: enable signed/unsigned compare compiler warning

Author: Michael Jeanson
Author Date: 2018-12-18 19:21:22 UTC

Cleanup: enable signed/unsigned compare compiler warning

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

stable-0.10 2018-12-09 11:52:51 UTC 2018-12-09
Fix: only wait if work queue is empty in real-time mode

Author: Jérémie Galarneau
Author Date: 2018-12-07 22:06:39 UTC

Fix: only wait if work queue is empty in real-time mode

Unconditionally waiting for 10 ms after the completion of every batch
of jobs of the work queue in real-time mode appears to be a behaviour
inherited from the call-rcu thread.

While this is a fair trade-off in the context of call-rcu, it is less
evident that it is desirable in the context of a general-purpose
work queue. Waiting when work is available artificially degrades the
latency characteristics of the work queue.

If a workqueue user even need the explicit delay for batching (e.g. if
a call-rcu implementation would ever use the workqueue worker thread),
it can add it within the worker_before_wait_fct callback received as
argument from workqueue creation.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>

stable-0.9 2018-11-23 22:01:30 UTC 2018-11-23
test_rwlock: Add per-thread count to verbose output

Author: Michael Jeanson
Author Date: 2018-11-23 20:27:07 UTC

test_rwlock: Add per-thread count to verbose output

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

stable-0.8 2018-01-23 20:16:37 UTC 2018-01-23
Version 0.8.11

Author: Mathieu Desnoyers
Author Date: 2018-01-23 20:16:37 UTC

Version 0.8.11

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

urcu/rcuja-simple-int 2016-08-24 20:38:28 UTC 2016-08-24
RCU Judy Array (rcuja) implementation

Author: Mathieu Desnoyers
Author Date: 2016-08-24 20:02:02 UTC

RCU Judy Array (rcuja) implementation

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

stable-0.7 2016-04-26 21:04:56 UTC 2016-04-26
Version 0.7.17

Author: Mathieu Desnoyers
Author Date: 2016-04-26 21:04:56 UTC

Version 0.7.17

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

urcu/rcuja-range 2015-05-04 17:38:34 UTC 2015-05-04
Fix: rcuja merge fixes

Author: Mathieu Desnoyers
Author Date: 2015-05-04 17:38:34 UTC

Fix: rcuja merge fixes

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

urcu/rcu-checker 2014-11-13 21:17:00 UTC 2014-11-13
Fix: call rcu should call internal RCU API

Author: Mathieu Desnoyers
Author Date: 2014-11-13 21:17:00 UTC

Fix: call rcu should call internal RCU API

Because call rcu implementation is included within RCU flavors, calling
the RCU API goes through the API for non-LGPL code (this is a special
case for the RCU flavor implementation c file). Since this is clearly
LGPL code, we can use the inline versions.

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

urcu/rcu-dereference-checker 2014-11-13 21:14:36 UTC 2014-11-13
Fix: memory leak in urcu-checker

Author: Mathieu Desnoyers
Author Date: 2014-11-13 21:14:36 UTC

Fix: memory leak in urcu-checker

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

urcu/workqueue-wakeup 2014-10-24 11:26:55 UTC 2014-10-24
waitqueue: add in_waitqueue field

Author: Mathieu Desnoyers
Author Date: 2014-10-24 11:26:55 UTC

waitqueue: add in_waitqueue field

Using the waitqueue node next pointer to figure out if the node is
within the queue worked when wfstack was used to implement the queue
stack, but unfortunately it does not keep the same semantic with
lfstack: indeed, the bottom of stack is indicated by a NULL pointer too.

Keep this state in a separate field instead to eliminate coupling
between workqueue, waitqueue and lfstack.

Note that it is OK for a worker to see "in_waitqueue" as temporarily
false when the wait node has just been pop'd from the waitqueue. It's
the opposite that we never want to happen: a worker should never see
"in_waitqueue" as false when the node is actually in the waitqueue,
because it would cause queue corruption.

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

stable-0.6 2013-11-11 21:50:15 UTC 2013-11-11
Test fix: 0.6 branch does not have tls-compat.h

Author: Mathieu Desnoyers
Author Date: 2013-11-11 21:50:15 UTC

Test fix: 0.6 branch does not have tls-compat.h

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

rcudq 2013-08-25 18:59:30 UTC 2013-08-25
Implement DQ unit test

Author: Mathieu Desnoyers
Author Date: 2013-08-25 18:22:15 UTC

Implement DQ unit test

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

urcu/rcuja 2013-06-07 21:29:39 UTC 2013-06-07
rcuja: cleanup

Author: Mathieu Desnoyers
Author Date: 2013-06-07 21:29:39 UTC

rcuja: cleanup

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

formal-model 2012-10-09 04:12:47 UTC 2012-10-09
Revert "spinlock model: Simplify state-space"

Author: Mathieu Desnoyers
Author Date: 2012-10-09 04:12:47 UTC

Revert "spinlock model: Simplify state-space"

This reverts commit a9227ee907160443d0e4b1639b274ab9278d92fa.

Need to study impact on progress.

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

urcu/ht-shrink 2012-02-22 00:06:52 UTC 2012-02-22
RCU lock-free hash table: implement cds_lfht_is_node_deleted()

Author: Mathieu Desnoyers
Author Date: 2012-02-22 00:06:52 UTC

RCU lock-free hash table: implement cds_lfht_is_node_deleted()

Some thoughts on how to use the RCU lock-free hash table brought me to
figure out that using the lock-free hash table along with a per-node
mutex is a quite interesting way to deal with lookup vs teardown
coherency.

A per-node lock can be used to protect concurrent modifications of an
entry from one another, as well as concurrent read vs modification. In
addition, if we ensure that each reader/updater of the node checks if
the node has been removed right after taking the mutex, and if we
perform the node removal from the hash table with the per-node mutex
held, we can ensure that readers/updaters will never access unlinked
data.

struct mynode {
 pthread_mutex_t mutex;
 struct cds_lfht node;
}

CPU A (lookup destroy and free) CPU B (lookup and read/modify)

                                          rcu_read_lock()
                                          mynode = caa_container_of(
                                                cds_lfht_lookup(...), ...);
                                          mutex_lock(&mynode->mutex);
                                          if (cds_lfht_is_node_deleted(
       &mynode->node))
                                               goto unlock;

                                          read/modify structure....

                                        unlock:
                                          mutex_unlock(&mynode->mutex);
                                          rcu_read_unlock()

rcu_read_lock()
mynode = caa_container_of(
        cds_lfht_lookup(...), ...);

mutex_lock(&mynode->mutex);

cds_lfht_del(ht, &mynode->node);

- perform extra teardown operations
  with side-effects, for which call_rcu
  delay is not appropriate

mutex_unlock(&mynode->mutex);
rcu_read_unlock()
call_rcu(free, mynode);

To perform this efficiently, we need an API function to return whether
the node previously looked-up has been deleted since then.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
CC: Lai Jiangshan <laijs@cn.fujitsu.com>
CC: Stephen Hemminger <shemminger@vyatta.com>

urcu/ht-shrink-help 2011-09-19 17:27:08 UTC 2011-09-19
rculfhash: add TODO for resize worker threads

Author: Mathieu Desnoyers
Author Date: 2011-09-19 17:27:08 UTC

rculfhash: add TODO for resize worker threads

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

rbtree2 2011-09-11 06:40:29 UTC 2011-09-11
rbtree test: add missing call_rcu per-cpu threads teardown

Author: Mathieu Desnoyers
Author Date: 2011-09-11 06:40:29 UTC

rbtree test: add missing call_rcu per-cpu threads teardown

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

urcu/ht-benchmarks 2011-09-05 11:15:30 UTC 2011-09-05
Add no locking test option for glib hash

Author: Mathieu Desnoyers
Author Date: 2011-09-05 11:15:30 UTC

Add no locking test option for glib hash

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

tests/lfstack-baseline 2011-09-05 00:30:27 UTC 2011-09-05
add test_lfs_baseline

Author: Mathieu Desnoyers
Author Date: 2011-09-05 00:30:27 UTC

add test_lfs_baseline

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

tests/lfqueue-baseline 2011-09-05 00:27:56 UTC 2011-09-05
Fix typo in makefile

Author: Mathieu Desnoyers
Author Date: 2011-09-05 00:27:56 UTC

Fix typo in makefile

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

urcu/ht 2011-09-03 20:23:24 UTC 2011-09-03
rculfhash test: Check random pool size

Author: Mathieu Desnoyers
Author Date: 2011-09-03 20:23:24 UTC

rculfhash test: Check random pool size

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

lfqueue-dev2 2011-08-17 10:07:44 UTC 2011-08-17
Merge branch 'lfqueue-dev' into lfqueue-dev2

Author: Mathieu Desnoyers
Author Date: 2011-08-17 10:07:44 UTC

Merge branch 'lfqueue-dev' into lfqueue-dev2

lfqueue-dev 2011-08-17 10:07:35 UTC 2011-08-17
Merge branch 'master' into lfqueue-dev

Author: Mathieu Desnoyers
Author Date: 2011-08-17 10:07:35 UTC

Merge branch 'master' into lfqueue-dev

rbtree 2010-03-22 19:09:44 UTC 2010-03-22
rbtree test: show tree

Author: Mathieu Desnoyers
Author Date: 2010-03-22 19:09:44 UTC

rbtree test: show tree

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

lflist 2010-03-01 20:15:19 UTC 2010-03-01
LFQ: Fix unpaired lock/unlock

Author: Mathieu Desnoyers
Author Date: 2010-03-01 20:15:19 UTC

LFQ: Fix unpaired lock/unlock

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

urcu/qsbr/adaptusleep 2009-09-26 22:32:21 UTC 2009-09-26
qsbr: only mark reader thread as being waited for in contended case

Author: Mathieu Desnoyers
Author Date: 2009-09-26 22:29:37 UTC

qsbr: only mark reader thread as being waited for in contended case

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>

urcu/yield 2009-09-26 22:29:37 UTC 2009-09-26
qsbr: only mark reader thread as being waited for in contended case

Author: Mathieu Desnoyers
Author Date: 2009-09-26 22:29:37 UTC

qsbr: only mark reader thread as being waited for in contended case

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>

urcu/futex 2009-09-26 12:19:26 UTC 2009-09-26
Add multiple reader queues to futex model

Author: Mathieu Desnoyers
Author Date: 2009-09-26 12:19:26 UTC

Add multiple reader queues to futex model

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>

urcu/busyloop 2009-09-24 00:55:52 UTC 2009-09-24
urcu-defer: fix futex wakeup value

Author: Mathieu Desnoyers
Author Date: 2009-09-24 00:55:52 UTC

urcu-defer: fix futex wakeup value

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>

129 of 29 results

Other repositories

Name Last Modified
lp:urcu 5 hours ago
lp:~lttng/urcu/+git/packaging 2017-09-15
12 of 2 results
You can't create new repositories for Userspace RCU.