Mathieu Desnoyers [Wed, 26 Jun 2013 21:39:21 +0000 (17:39 -0400)]
rcuja: fix randomness seed (per-thread), use u64 keyspace for random range
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 26 Jun 2013 21:36:11 +0000 (17:36 -0400)]
Merge branch 'master' into urcu/rcuja-range
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 26 Jun 2013 21:01:20 +0000 (17:01 -0400)]
test_urcu_hash*: initialize TLS seeds
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 26 Jun 2013 20:02:57 +0000 (16:02 -0400)]
Fix: test initial population needs QS
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 23 Jun 2013 19:03:45 +0000 (15:03 -0400)]
doc/examples: cds_lfht_for_each_entry_duplicate
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 23 Jun 2013 18:56:44 +0000 (14:56 -0400)]
doc/examples: cds_lfht_lookup
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 23 Jun 2013 18:38:10 +0000 (14:38 -0400)]
doc/examples: cds_lfht_destroy
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 23 Jun 2013 18:16:45 +0000 (14:16 -0400)]
doc/examples: cds_lfht_add_replace
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 23 Jun 2013 18:01:01 +0000 (14:01 -0400)]
doc/examples: cds_lfht_add_unique
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 23 Jun 2013 17:40:42 +0000 (13:40 -0400)]
doc/examples: cds_lfht_add/cds_lfht_del
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 23 Jun 2013 15:31:33 +0000 (11:31 -0400)]
doc/examples: add rculfqueue example
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 18:59:35 +0000 (14:59 -0400)]
doc/examples: add synchronize_rcu()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 18:49:06 +0000 (14:49 -0400)]
doc/examples: add bp flavor
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 18:39:12 +0000 (14:39 -0400)]
doc/examples: add dist toplevel makefile
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 18:18:22 +0000 (14:18 -0400)]
doc/examples: add membarrier flavor
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 18:05:10 +0000 (14:05 -0400)]
doc/examples: document call_rcu()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 18:02:30 +0000 (14:02 -0400)]
doc/examples: update qsbr example
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 18:00:39 +0000 (14:00 -0400)]
urcu signal: remove assertion on exit
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 17:34:53 +0000 (13:34 -0400)]
doc/examples: signal flavor
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 17:26:16 +0000 (13:26 -0400)]
doc/examples: add mb flavor
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 17:25:03 +0000 (13:25 -0400)]
doc/examples: update qsbr
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 17:19:36 +0000 (13:19 -0400)]
doc/examples: introduce urcu-flavors examples directory
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 17:13:22 +0000 (13:13 -0400)]
doc/examples: enhance rcu-flavor-qsbr example
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 17:02:46 +0000 (13:02 -0400)]
doc/examples: rename qsbr-minimal to rcu-flavor-qsbr
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 16:08:31 +0000 (12:08 -0400)]
doc/examples: automake stop on error
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 16:06:00 +0000 (12:06 -0400)]
doc/examples: hlist
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 22 Jun 2013 15:50:44 +0000 (11:50 -0400)]
hlist/rcuhlist update
introduce:
- cds_hlist_for_each()
- cds_hlist_for_each_safe()
- CDS_HLIST_HEAD()
- CDS_HLIST_HEAD_INIT()
- cds_hlist_for_each_entry_2() (takes 3 argument, like the Linux kernel
API),
- cds_hlist_for_each_entry_safe_2() (takes 4 arguments, like the Linux
kernel API),
- cds_hlist_for_each_rcu()
- cds_hlist_for_each_entry_rcu_2() (takes 3 arguments, like the Linux
kernel API).
Left cds_hlist_for_each_entry(), cds_hlist_for_each_entry_safe() and
cds_hlist_for_each_entry_rcu() as-is (different from the ones found in
the Linux kernel) because those APIs were already exposed by Userspace
RCU.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 21:45:48 +0000 (17:45 -0400)]
doc/examples: fix typo in list example
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 21:29:42 +0000 (17:29 -0400)]
rcuhlist: make pointer stores atomic
Use rcu_assign_pointer() to store into head->next in
cds_hlist_add_head_rcu(). This includes the write barrier needed before
publishing the new node.
Use CMM_STORE_SHARED() to store into elem->prev->next in
cds_hlist_del_rcu().
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 21:26:09 +0000 (17:26 -0400)]
hlist, rcuhlist: cleanup coding style
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 21:17:32 +0000 (17:17 -0400)]
doc/examples: lfstack
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 20:51:14 +0000 (16:51 -0400)]
doc/examples: update cds_wfs_pop_all_blocking
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 20:46:04 +0000 (16:46 -0400)]
doc/examples: cds_wfs_pop_all_blocking
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 20:31:49 +0000 (16:31 -0400)]
doc/examples: cds_wfs_pop
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 20:21:34 +0000 (16:21 -0400)]
doc/examples: add missing Makefile
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 20:19:01 +0000 (16:19 -0400)]
doc/examples: cds_wfs_push
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 19:57:35 +0000 (15:57 -0400)]
doc/wfcqueue: cds_wfcq_splice
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 19:32:14 +0000 (15:32 -0400)]
doc/examples: add cds_wfcq_dequeue
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 19:31:44 +0000 (15:31 -0400)]
doc/examples: wfcq needs to link against urcu-common
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 19:03:48 +0000 (15:03 -0400)]
doc/examples: update queue comment
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 18:56:44 +0000 (14:56 -0400)]
doc/examples: fix make clean
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 18:54:42 +0000 (14:54 -0400)]
gitignore: add qsbr-minimal
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 18:53:52 +0000 (14:53 -0400)]
doc/examples: cds_wfcq_enqueue
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 18:52:44 +0000 (14:52 -0400)]
doc/examples: Move LIBS to each makefile
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 18:22:32 +0000 (14:22 -0400)]
doc/examples: cds_list_for_each_rcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 18:12:54 +0000 (14:12 -0400)]
doc/examples: cds_list_for_each_entry_rcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 17:59:09 +0000 (13:59 -0400)]
doc/examples: cds_list_replace_rcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 17:43:43 +0000 (13:43 -0400)]
doc/examples: cds_list_add_tail_rcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 16:01:06 +0000 (12:01 -0400)]
doc/examples: cds_list_del_rcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 15:46:17 +0000 (11:46 -0400)]
doc/examples: cds_list_add_rcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 16:51:13 +0000 (12:51 -0400)]
rculist: ensure atomic updates of next pointers
in cds_list_add_rcu, use rcu_assign_pointer to update head->next
atomically and provide the memory barrier before publishing head->next.
Notice that we don't need the wmb() prior to store to prev, because RCU
traversals only go forward, and thus only use "next".
in cds_list_del_rcu, use CMM_STORE_SHARED() to store to elem->prev->next
atomically.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 16:48:18 +0000 (12:48 -0400)]
rculist: implement cds_list_add_tail_rcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 21 Jun 2013 16:27:44 +0000 (12:27 -0400)]
rculist.h and list.h style cleanup
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 20 Jun 2013 13:21:03 +0000 (09:21 -0400)]
example makefile: add missing cd ..
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 20 Jun 2013 12:57:57 +0000 (08:57 -0400)]
Update gitignore
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 20 Jun 2013 12:50:33 +0000 (08:50 -0400)]
Fix: examples Makefile on FreeBSD
Support BSD-style make.
Fixes #565
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 19 Jun 2013 14:31:57 +0000 (10:31 -0400)]
hash table test: don't redefine CACHE_LINE_SIZE
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 19 Jun 2013 14:31:09 +0000 (10:31 -0400)]
tests: use thread-id.h wrapper
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 19 Jun 2013 14:30:58 +0000 (10:30 -0400)]
Implement thread-id.h wrapper
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 19 Jun 2013 13:04:55 +0000 (09:04 -0400)]
tests: add missing unsigned long casts to pthread_self()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Jun 2013 22:32:04 +0000 (18:32 -0400)]
Fix: don't build examples in static builds
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Jun 2013 22:07:01 +0000 (18:07 -0400)]
rcuja: Fix missing return type warning
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Jun 2013 21:31:17 +0000 (17:31 -0400)]
Merge branch 'master' into urcu/rcuja-range
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 20:18:34 +0000 (16:18 -0400)]
Add QSBR minimal example
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Jun 2013 21:28:07 +0000 (17:28 -0400)]
compiler.h: implement CAA_ARRAY_SIZE()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Jun 2013 12:30:21 +0000 (08:30 -0400)]
document rcu barrier
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Jun 2013 12:22:50 +0000 (08:22 -0400)]
rcu barrier: handle OOM die urcu_die
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 15:32:16 +0000 (11:32 -0400)]
Implement rcu_barrier()
Awaits for all in-flight call_rcu handlers to complete execution before
returning.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Jun 2013 12:30:21 +0000 (08:30 -0400)]
document rcu barrier
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Jun 2013 12:22:50 +0000 (08:22 -0400)]
rcu barrier: handle OOM die urcu_die
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Jun 2013 12:15:21 +0000 (08:15 -0400)]
rculfhash: document destroy context limitations
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 13 Jun 2013 16:45:20 +0000 (12:45 -0400)]
rcuja: add missing rcu_dereference
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 13 Jun 2013 15:35:13 +0000 (11:35 -0400)]
rcuja: disable node accounting by default
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 13 Jun 2013 15:29:50 +0000 (11:29 -0400)]
rcuja: add missing header
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 13 Jun 2013 12:14:16 +0000 (08:14 -0400)]
test ja-range: max len
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Jun 2013 15:18:52 +0000 (11:18 -0400)]
Add MIPS to README
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Jun 2013 12:53:02 +0000 (08:53 -0400)]
rcuja-range: get values
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Jun 2013 12:38:26 +0000 (08:38 -0400)]
rcuja-range: allow variable number of bits for key
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Jun 2013 02:12:21 +0000 (22:12 -0400)]
doc examples: add missing include path
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Jun 2013 02:07:47 +0000 (22:07 -0400)]
rcuja range: bugfixes and validation
Add cds_ja_range_validate to validate consistency of the data structure
(when it is not being concurrently used).
Fix various bugs.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Jun 2013 02:05:50 +0000 (22:05 -0400)]
rcuja: fix iteration and lookup below/above equal
- fix iteration on entirely filled uint64_t keyspace: we need to reserve
UINT64_MAX as end-of-iteration marker.
- fix linear lookups below/above or equal: should not re-read the
pointer.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 21:15:11 +0000 (17:15 -0400)]
rcuja range: range add return error value
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 21:08:34 +0000 (17:08 -0400)]
test rcuja range: fix print format
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 21:07:10 +0000 (17:07 -0400)]
test range: update error msg
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 21:05:44 +0000 (17:05 -0400)]
rcuja range: add rcu read lock/unlock in new/destroy
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 21:05:06 +0000 (17:05 -0400)]
rcuja: fix below/above "or equal" lookup
"or equal" was missing for 0 et max value.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 20:38:45 +0000 (16:38 -0400)]
rcuja range test
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 20:12:45 +0000 (16:12 -0400)]
rcuja range: add private data to allocated ranges
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 20:01:53 +0000 (16:01 -0400)]
rcuja range: fix comment
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 17:47:28 +0000 (13:47 -0400)]
rcuja ranges: update API
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 17:17:02 +0000 (13:17 -0400)]
rcuja range: serialize freeing of contiguous ranges
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 16:29:47 +0000 (12:29 -0400)]
rcuja range: fix typo
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 9 Jun 2013 15:15:15 +0000 (11:15 -0400)]
rcuja: range implementation file
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 8 Jun 2013 12:24:23 +0000 (08:24 -0400)]
Update README
Detail i386/amd64 as tested for FreeBSD.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 8 Jun 2013 11:57:57 +0000 (07:57 -0400)]
Update README testing info about FreeBSD
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 21:30:33 +0000 (17:30 -0400)]
rcuja: range implementation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 21:29:39 +0000 (17:29 -0400)]
rcuja: cleanup
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 20:46:02 +0000 (16:46 -0400)]
rcuja: add duplicate at end of list
Add duplicate nodes at end of list to provide key existance guarantee to
RCU traversals performed concurrently during a succession of add
followed by delete of the same key.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 19:07:19 +0000 (15:07 -0400)]
rcuja: remove unneeded headers
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 19:04:11 +0000 (15:04 -0400)]
rcuja: remove unneeded header
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.040148 seconds and 4 git commands to generate.