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>
Mathieu Desnoyers [Thu, 30 May 2013 20:05:51 +0000 (16:05 -0400)]
rcuja test: destroy should be done online
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 30 May 2013 11:08:35 +0000 (07:08 -0400)]
rcuja: print info about allocated/freed/fallback nodes
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 30 May 2013 10:57:43 +0000 (06:57 -0400)]
rcuja fix: fix 2d distance calculation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 30 May 2013 02:41:26 +0000 (22:41 -0400)]
rcuja fix: update 2d distance calculation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 30 May 2013 02:06:45 +0000 (22:06 -0400)]
rcuja: add same can use same fallback as add next
Still need to figure out why this fallback is reached in add same.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 30 May 2013 01:54:09 +0000 (21:54 -0400)]
rcuja: implement 2d distribution
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 29 May 2013 19:48:16 +0000 (15:48 -0400)]
rcuja 1d distribution: cleanup
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 28 May 2013 13:29:00 +0000 (09:29 -0400)]
rcuja: implement 1 dimension pool distribution
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 28 May 2013 03:58:39 +0000 (23:58 -0400)]
Fix rcuja: fallback when adding element to full pool
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 28 May 2013 03:49:11 +0000 (23:49 -0400)]
rcuja test: fix -k option
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 May 2013 18:59:01 +0000 (14:59 -0400)]
rcuja: Add missing header
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 May 2013 18:53:00 +0000 (14:53 -0400)]
rcuja test: print mul fact
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 May 2013 18:48:23 +0000 (14:48 -0400)]
rcuja test: add key multiplication factor
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 May 2013 17:39:25 +0000 (13:39 -0400)]
test rcuja: add ratio parameter
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 May 2013 17:13:55 +0000 (13:13 -0400)]
rcuja fix: list prev pointer vs recompaction
We should update the list prev pointer (for the first node) when a
recompaction changes the address of the list head. Currently a
work-around.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 May 2013 17:12:44 +0000 (13:12 -0400)]
Fix rcuja: concurrency checks
add/delete need to re-check that RCU lookups are still valid after
taking node locks.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 May 2013 17:10:08 +0000 (13:10 -0400)]
rcuja test: use poison_free
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 May 2013 17:09:38 +0000 (13:09 -0400)]
rcuja test: add missing rcu read unlock
No impact for now, since we use QSBR.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 May 2013 21:02:14 +0000 (17:02 -0400)]
rcuja fix: handle add/removal/add concurrency
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 May 2013 15:16:13 +0000 (11:16 -0400)]
rcuja fix: del wrt concurrency
testing with:
test_urcu_ja 0 3 10 -v -M 1 -N 1 -O 1
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 May 2013 15:15:49 +0000 (11:15 -0400)]
Fix urcu test: incorrect handling of del/free
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 May 2013 14:33:39 +0000 (10:33 -0400)]
hlist: remove needless "member" parameter
cds_hlist_for_each_rcu and cds_hlist_first_rcu don't need to "member"
parameter at all.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 May 2013 13:54:24 +0000 (09:54 -0400)]
Fix rcuja: chain/unchain locking vs retry
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 May 2013 00:46:47 +0000 (20:46 -0400)]
Fix rcuja: delete last node
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 18 May 2013 17:19:09 +0000 (19:19 +0200)]
rcuja fix: get the right node
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 18 May 2013 15:18:52 +0000 (17:18 +0200)]
Fix rcuja: handle concurrent updates
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 18 May 2013 15:18:31 +0000 (17:18 +0200)]
rcuja: Add debug output
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 14 May 2013 15:03:31 +0000 (17:03 +0200)]
rcuja test: add rcu_ prefix to debug_yield_read
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 29 Aug 2012 05:17:15 +0000 (22:17 -0700)]
rcuja: allow non-power of 2 keys
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 29 Aug 2012 05:13:24 +0000 (22:13 -0700)]
rcuja: add multithread test
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 29 Aug 2012 05:12:56 +0000 (22:12 -0700)]
Fix: rcuja: typo
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 26 Aug 2012 00:57:59 +0000 (20:57 -0400)]
rcuja: test duplicate node/key support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 26 Aug 2012 00:57:43 +0000 (20:57 -0400)]
rcuja: fix duplicate node/key support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 26 Aug 2012 00:57:24 +0000 (20:57 -0400)]
hlist: implement non-entry API
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 26 Aug 2012 00:12:00 +0000 (20:12 -0400)]
rcuja: fix delete
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 24 Aug 2012 21:30:02 +0000 (17:30 -0400)]
rcuja: free all leaf nodes at destruction
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 24 Aug 2012 21:29:52 +0000 (17:29 -0400)]
hlist: implement cds_hlist_first_entry_rcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 24 Aug 2012 17:22:13 +0000 (13:22 -0400)]
rcuja: implement delete function
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 24 Aug 2012 17:21:49 +0000 (13:21 -0400)]
hlist: implement cds_hlist_empty
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 Aug 2012 19:31:06 +0000 (15:31 -0400)]
rcuja: partial implementation of cds_ja_del
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 22 Aug 2012 16:58:17 +0000 (12:58 -0400)]
rcuja: implement ja_node_clear_nth
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.039072 seconds and 4 git commands to generate.