urcu.git
11 years agoMerge branch 'master' into urcu/rcuja-range
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>
11 years agotest_urcu_hash*: initialize TLS seeds
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>
11 years agoFix: test initial population needs QS
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>
11 years agodoc/examples: cds_lfht_for_each_entry_duplicate
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>
11 years agodoc/examples: cds_lfht_lookup
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>
11 years agodoc/examples: cds_lfht_destroy
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>
11 years agodoc/examples: cds_lfht_add_replace
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>
11 years agodoc/examples: cds_lfht_add_unique
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>
11 years agodoc/examples: cds_lfht_add/cds_lfht_del
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>
11 years agodoc/examples: add rculfqueue example
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>
11 years agodoc/examples: add synchronize_rcu()
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>
11 years agodoc/examples: add bp flavor
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>
11 years agodoc/examples: add dist toplevel makefile
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>
11 years agodoc/examples: add membarrier flavor
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>
11 years agodoc/examples: document call_rcu()
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>
11 years agodoc/examples: update qsbr example
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>
11 years agourcu signal: remove assertion on exit
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>
11 years agodoc/examples: signal flavor
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>
11 years agodoc/examples: add mb flavor
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>
11 years agodoc/examples: update qsbr
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>
11 years agodoc/examples: introduce urcu-flavors examples directory
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>
11 years agodoc/examples: enhance rcu-flavor-qsbr example
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>
11 years agodoc/examples: rename qsbr-minimal to rcu-flavor-qsbr
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>
11 years agodoc/examples: automake stop on error
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>
11 years agodoc/examples: hlist
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>
11 years agohlist/rcuhlist update
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>
11 years agodoc/examples: fix typo in list example
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>
11 years agorcuhlist: make pointer stores atomic
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>
11 years agohlist, rcuhlist: cleanup coding style
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>
11 years agodoc/examples: lfstack
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>
11 years agodoc/examples: update cds_wfs_pop_all_blocking
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>
11 years agodoc/examples: cds_wfs_pop_all_blocking
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>
11 years agodoc/examples: cds_wfs_pop
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>
11 years agodoc/examples: add missing Makefile
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>
11 years agodoc/examples: cds_wfs_push
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>
11 years agodoc/wfcqueue: cds_wfcq_splice
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>
11 years agodoc/examples: add cds_wfcq_dequeue
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>
11 years agodoc/examples: wfcq needs to link against urcu-common
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>
11 years agodoc/examples: update queue comment
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>
11 years agodoc/examples: fix make clean
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>
11 years agogitignore: add qsbr-minimal
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>
11 years agodoc/examples: cds_wfcq_enqueue
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>
11 years agodoc/examples: Move LIBS to each makefile
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>
11 years agodoc/examples: cds_list_for_each_rcu
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>
11 years agodoc/examples: cds_list_for_each_entry_rcu
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>
11 years agodoc/examples: cds_list_replace_rcu
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>
11 years agodoc/examples: cds_list_add_tail_rcu
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>
11 years agodoc/examples: cds_list_del_rcu
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>
11 years agodoc/examples: cds_list_add_rcu
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>
11 years agorculist: ensure atomic updates of next pointers
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>
11 years agorculist: implement cds_list_add_tail_rcu
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>
11 years agorculist.h and list.h style cleanup
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>
11 years agoexample makefile: add missing cd ..
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>
11 years agoUpdate gitignore
Mathieu Desnoyers [Thu, 20 Jun 2013 12:57:57 +0000 (08:57 -0400)] 
Update gitignore

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
11 years agoFix: examples Makefile on FreeBSD
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>
11 years agohash table test: don't redefine CACHE_LINE_SIZE
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>
11 years agotests: use thread-id.h wrapper
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>
11 years agoImplement thread-id.h wrapper
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>
11 years agotests: add missing unsigned long casts to pthread_self()
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>
11 years agoFix: don't build examples in static builds
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>
11 years agorcuja: Fix missing return type warning
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>
11 years agoMerge branch 'master' into urcu/rcuja-range
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>
11 years agoAdd QSBR minimal example
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>
11 years agocompiler.h: implement CAA_ARRAY_SIZE()
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>
11 years agodocument rcu barrier
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>
11 years agorcu barrier: handle OOM die urcu_die
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>
11 years agoImplement rcu_barrier()
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>
11 years agodocument rcu barrier
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>
11 years agorcu barrier: handle OOM die urcu_die
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>
11 years agorculfhash: document destroy context limitations
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>
11 years agorcuja: add missing rcu_dereference
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>
11 years agorcuja: disable node accounting by default
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>
11 years agorcuja: add missing header
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>
11 years agotest ja-range: max len
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>
11 years agoAdd MIPS to README
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>
11 years agorcuja-range: get values
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>
11 years agorcuja-range: allow variable number of bits for key
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>
11 years agodoc examples: add missing include path
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>
11 years agorcuja range: bugfixes and validation
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>
11 years agorcuja: fix iteration and lookup below/above equal
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>
11 years agorcuja range: range add return error value
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>
11 years agotest rcuja range: fix print format
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>
11 years agotest range: update error msg
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>
11 years agorcuja range: add rcu read lock/unlock in new/destroy
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>
11 years agorcuja: fix below/above "or equal" lookup
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>
11 years agorcuja range test
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>
11 years agorcuja range: add private data to allocated ranges
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>
11 years agorcuja range: fix comment
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>
11 years agorcuja ranges: update API
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>
11 years agorcuja range: serialize freeing of contiguous ranges
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>
11 years agorcuja range: fix typo
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>
11 years agorcuja: range implementation file
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>
11 years agoUpdate README
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>
11 years agoUpdate README testing info about FreeBSD
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>
11 years agorcuja: range implementation
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>
11 years agorcuja: cleanup urcu/rcuja
Mathieu Desnoyers [Fri, 7 Jun 2013 21:29:39 +0000 (17:29 -0400)] 
rcuja: cleanup

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
11 years agorcuja: add duplicate at end of list
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>
11 years agorcuja: remove unneeded headers
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>
11 years agorcuja: remove unneeded header
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>
11 years agorcuja: testpop: fix warning
Mathieu Desnoyers [Fri, 7 Jun 2013 17:27:04 +0000 (13:27 -0400)] 
rcuja: testpop: fix warning

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.039946 seconds and 4 git commands to generate.