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 [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>
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>
Mathieu Desnoyers [Fri, 7 Jun 2013 17:23:25 +0000 (13:23 -0400)]
rcuja: add testpop to makefile
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 17:18:02 +0000 (13:18 -0400)]
rcuja: update copyright dates
Also add HP copyright to rcuja-internal.h, thus making it a derived work
from the HP LGPLv2+ implementation of Judy array.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 17:10:10 +0000 (13:10 -0400)]
rcuja: derived work from HP Judy array
Add copyright notice from:
http://sourceforge.net/projects/judy/
judy-1.0.5.tar.gz
src/JudyCommon/JudyIns.c:
Original notice:
// Copyright (C) 2000 - 2002 Hewlett-Packard Company
//
// This program is free software; you can redistribute it and/or modify it
// under the term of the GNU Lesser General Public License as published by the
// Free Software Foundation; either version 2 of the License, or (at your
// option) any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
// for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program; if not, write to the Free Software Foundation,
// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Therefore clearly stating that rcuja.c is derived work from the LGPLv2+
Judy array implementation from Hewlett-Packard Company.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 17:00:16 +0000 (13:00 -0400)]
rcuja: below/above skip NULL pointers
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 14:23:40 +0000 (10:23 -0400)]
rcuja: remove "free_node_cb" from destroy
It is now up to the caller to ensure that the Judy array is emptied
before destroying it.
For instance, if nodes are accessible through another data structure
than the Judy array, it may very well be valid to destroy the Judy array
without freeing memory associated to those nodes.
Destroy still takes care of freeing memory used for Judy internal nodes.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 14:11:43 +0000 (10:11 -0400)]
rcuja: for each key iteration
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 13:30:45 +0000 (09:30 -0400)]
rcuja: cleanup
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 13:29:30 +0000 (09:29 -0400)]
rcuja: below/equal result key
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 12:36:38 +0000 (08:36 -0400)]
rcuja tests: test above or equal
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 12:31:25 +0000 (08:31 -0400)]
rcuja: below equal/above equal
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 02:38:08 +0000 (22:38 -0400)]
rcuja: update destroy comment
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 7 Jun 2013 00:11:10 +0000 (20:11 -0400)]
rcuja: document destroy requirement
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 23:43:56 +0000 (19:43 -0400)]
rcuja tests: free node cb does not need to wait for Q.S. in destroy
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 23:43:37 +0000 (19:43 -0400)]
rcuja: document that destroy free_node_cb does not need to wait for Q.S.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 23:22:48 +0000 (19:22 -0400)]
rcuja: extend API documentation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 23:22:36 +0000 (19:22 -0400)]
rcuja: rename new_node to node in add functions
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 19:16:57 +0000 (15:16 -0400)]
rcuja API: document lookup
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 19:04:24 +0000 (15:04 -0400)]
rcuja fix: pointer type warning
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 17:40:53 +0000 (13:40 -0400)]
rcuja testpop: cleanup distribution output
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 16:54:00 +0000 (12:54 -0400)]
rcuja testpop: update accounting
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 16:43:59 +0000 (12:43 -0400)]
rcuja: fix 8-bit overflow in 1d/2d distribution sum
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 16:30:39 +0000 (12:30 -0400)]
rcuja: testpop update for 2d distribution
Update testpop population test program according to 2d distribution
calculation updates in rcuja.c.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Jun 2013 15:59:16 +0000 (11:59 -0400)]
rcuja: 2d distribution sum improvement
Perform inner loop in 2 checks instead of 4.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 5 Jun 2013 21:43:49 +0000 (17:43 -0400)]
rcuja: implement ja_node_ptr fast path
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 5 Jun 2013 20:48:30 +0000 (16:48 -0400)]
rcuja API: remove dependency on hlist
- introduce cds_ja_for_each_duplicate_rcu()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 5 Jun 2013 19:24:00 +0000 (15:24 -0400)]
rculist: identify stores to shared pointers
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 5 Jun 2013 15:00:28 +0000 (11:00 -0400)]
rcuja: API change: move rcu_head to user code
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 20:25:47 +0000 (16:25 -0400)]
qsbr example: add missing return 0
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 20:25:35 +0000 (16:25 -0400)]
Add Wall to qsbr examples makefile
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 [Mon, 3 Jun 2013 13:53:40 +0000 (09:53 -0400)]
rcuja: document attach role in no dead-end guarantees
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 06:48:29 +0000 (02:48 -0400)]
rcuja: lookup lower equal cannot reach dead-end
Thanks to the guarantees provided by ja_detach_node(), lookups can
_never_ see a branch that would lead to a dead-end. Therefore, lookup
lower/equal never needs to retry, and we thus have a bounded number of
operations for cds_ja_lookup_lower_equal().
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 05:42:45 +0000 (01:42 -0400)]
rcuja: lower equal: handle concurrent removal with retry
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 05:09:55 +0000 (01:09 -0400)]
rcuja: remove unneeded endian.h
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 05:07:12 +0000 (01:07 -0400)]
rcuja: remove unneeded bitfield.h
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 04:42:59 +0000 (00:42 -0400)]
rcuja tests: test lookup lower equal for 8-bit and 16-bit judy arrays
Sanity tests.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 04:42:44 +0000 (00:42 -0400)]
rcuja: implement lookup_lower_equal
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 3 Jun 2013 04:40:07 +0000 (00:40 -0400)]
rcuja tests: fix sanity test printout
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 17:50:33 +0000 (13:50 -0400)]
rcuja test: add specific free_node()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 17:48:04 +0000 (13:48 -0400)]
rcuja test: cleanup
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 17:26:00 +0000 (13:26 -0400)]
rcuja.sh: add node leak detection
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 17:23:49 +0000 (13:23 -0400)]
rcuja tests: node leak detection
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 17:09:46 +0000 (13:09 -0400)]
expand runja.sh
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 17:09:33 +0000 (13:09 -0400)]
ja tests: add printout
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 16:42:40 +0000 (12:42 -0400)]
rcuja tests: add vs add unique
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 16:31:49 +0000 (12:31 -0400)]
runja.sh: run sanity tests
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 16:31:38 +0000 (12:31 -0400)]
rcuja: return errors on destroy
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 16:31:25 +0000 (12:31 -0400)]
rcuja tests: return errors
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 16:20:12 +0000 (12:20 -0400)]
rcuja: add runja.sh
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 16:10:27 +0000 (12:10 -0400)]
rcuja: cleanup destroy print output
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 16:00:43 +0000 (12:00 -0400)]
rcuja: move debugging info into judy array structure
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 15:45:15 +0000 (11:45 -0400)]
rcuja: use rcu_barrier in destroy
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, 31 May 2013 02:51:22 +0000 (22:51 -0400)]
rcuja: tweak pigeon min child for 32-bit
value 89 was causing 2% fallback node with random population. value 83
triggers only 0.01% fallback nodes.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 02:27:13 +0000 (22:27 -0400)]
rcuja: tweak pigeon min child for 64-bit
value 101 was causing 2% fallback node with random population. value 95
triggers only 0.01% fallback nodes.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 02:14:51 +0000 (22:14 -0400)]
rcuja testing: add arbitrary wait
For testing purposes, wait for free to be performed.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 31 May 2013 02:10:38 +0000 (22:10 -0400)]
rcuja fix: perform lookup in attach node
Handles case where the existing location is not yet reserved. Therefore,
a pointer check cannot be used to check if it has been concurrently
populated. A full-blown lookup is therefore required.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 30 May 2013 20:34:59 +0000 (16:34 -0400)]
rcuja: implement add unique
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 30 May 2013 20:06:23 +0000 (16:06 -0400)]
rcuja: fixes and add redesign of "add"
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.039603 seconds and 4 git commands to generate.