Mathieu Desnoyers [Tue, 9 Mar 2010 14:52:37 +0000 (09:52 -0500)]
urcu rbtree: use redirections when comparing to parent right/left in prev/next
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 9 Mar 2010 14:46:53 +0000 (09:46 -0500)]
Use _STORE_SHARED to update redirections
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 9 Mar 2010 14:25:11 +0000 (09:25 -0500)]
rbtree test: improvement
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 9 Mar 2010 14:23:25 +0000 (09:23 -0500)]
rcu rbtree: add redirections for prev/next walk
We need to atomically make the parent/child relationship visible atomically to
the rest of the world. Add redirections in the old nodes to the new nodes which
atomically override the old nodes from the prev/next walk point of view.
Note that it does not affect search, because these do not need to consider the
parents.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 9 Mar 2010 03:39:45 +0000 (22:39 -0500)]
Improve rbtree test
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 9 Mar 2010 03:39:15 +0000 (22:39 -0500)]
Fix nil handling
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 9 Mar 2010 02:16:07 +0000 (21:16 -0500)]
rbtree: fix nil nodes handling
Don't copy and create new nodes for nil nodes. They have to always point to the
same!
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 8 Mar 2010 23:26:15 +0000 (18:26 -0500)]
update test and header rbtree for correct remove use
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 8 Mar 2010 23:17:13 +0000 (18:17 -0500)]
Basic insertion/removal tests
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 8 Mar 2010 23:09:56 +0000 (18:09 -0500)]
Basic fix for rbtree nil node
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 8 Mar 2010 23:09:13 +0000 (18:09 -0500)]
Basic fix for rbtree nil root and urcu defer registration
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 8 Mar 2010 22:23:03 +0000 (17:23 -0500)]
Initial RB tree commit
Supports RCU lookups and "next" "prev" ordered traversal. Completely untested.
Builds fine though.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 7 Mar 2010 02:07:18 +0000 (21:07 -0500)]
update version to 0.4.3
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Jon Bernard [Sun, 7 Mar 2010 02:06:36 +0000 (21:06 -0500)]
Fix typo in urcu/uatomic_generic.h
Signed-off-by: Jon Bernard <jbernard@debian.org>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 4 Mar 2010 19:57:57 +0000 (14:57 -0500)]
Update version to 0.4.2
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 4 Mar 2010 14:54:51 +0000 (09:54 -0500)]
Update README
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 3 Mar 2010 14:08:30 +0000 (09:08 -0500)]
urcu-bp: reset ctr to 0 upon garbage collection
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 2 Mar 2010 16:41:01 +0000 (11:41 -0500)]
compiler.h: add () in ACCESS_ONCE()
Protect x in ACCESS_ONCE macro.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 2 Mar 2010 16:36:49 +0000 (11:36 -0500)]
urcu-defer: remove "ratelimit" leftover
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 2 Mar 2010 16:18:30 +0000 (11:18 -0500)]
Update readme: ia64 and alpha support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 2 Mar 2010 16:08:19 +0000 (11:08 -0500)]
Install missing arch_generic.h
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 1 Mar 2010 21:42:15 +0000 (16:42 -0500)]
urcu: fix multiple register/unregister assertion failure
Caused by the fact that we check for the whole gp count (which includes the last
grace period phase bit) rather than just checking if the nesting count mask is
zero.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 1 Mar 2010 21:41:51 +0000 (16:41 -0500)]
test cases: add multiple register/unregister tests
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 19:12:21 +0000 (14:12 -0500)]
centralize definition of BITS_PER_LONG
Use __SIZEOF_LONG__, defined by GCC 4.3 or later, or _LP64, defined
by GCC 3.4 or later.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 19:06:01 +0000 (14:06 -0500)]
avoid multiple evaluation of STORE_SHARED argument
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 19:04:11 +0000 (14:04 -0500)]
support compiling on unknown architectures
The new defaults mean that, for example, ia64 support comes for free.
[edit by Mathieu Desnoyers]
defaults -> generic
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 19:02:55 +0000 (14:02 -0500)]
add Alpha support
And you already know what needs to be special-cased for Alpha...
[edit by Mathieu Desnoyers]
defaults -> generic
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 19:00:22 +0000 (14:00 -0500)]
move whether atomic byte/short exists to uatomic_arch_*.h
And add more generic implementations to uatomic_defaults.h.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 18:58:45 +0000 (13:58 -0500)]
use uatomic_generic.h for common fallback implementations
And now, really remove the code for S390/SPARC, using the fallback
implementation of uatomic_generic.h
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 18:57:00 +0000 (13:57 -0500)]
add uatomic_generic.h, use it for common definitions
uatomic_generic.h can be included by uatomic_arch_*.h to provide useful
default definitions. uatomic_arch_*.h can define whatever builtins
it wants to override, then uatomic_generic.h will provide what is not
already defined, as follows:
- uatomic_cmpxchg will use __sync_val_compare_and_swap builtins;
- uatomic_add_return will use __sync_fetch_and_add if uatomic_arch_*.h
did not provide a definition of uatomic_cmpxchg. If it did, we assume
__sync builtins are buggy or otherwise undesirable on this platform,
so uatomic_generic.h will implement uatomic_add_return in terms of
uatomic_cmpxchg too.
- uatomic_xchg is like uatomic_add_return. However, since GCC does
not provide an adequate builtin, it needs to use a compare-and-swap
loop using __sync_bool_compare_and_swap if uatomic_cmpxchg is not
provided.
- uatomic_sub_return/uatomic_add/uatomic_sub will be implemented
in terms of uatomic_add_return;
- uatomic_inc/uatomic_dec will be implemented in terms of uatomic_add.
After this patch, uatomic_generic.h is already used for the latter two
categories. The next patch will use uatomic_generic.h whenever there is
no assembly code involved, or otherwise it makes no difference to use
uatomic_generic.h. We keep custom per-arch macros to provide support for
compilers back to early GCC 3.x versions; however future ports may
not have this limitation.
The hunk in tests/test_uatomic.c is only needed for bisectability
and will be removed later.
[edit by Mathieu Desnoyers]
Fixed Makefile.am conflict.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 18:53:51 +0000 (13:53 -0500)]
remove compat_uatomic_cmpxchg #define from non-x86
This is unused everywhere except on x86.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 18:52:45 +0000 (13:52 -0500)]
define sync_core for x86 PIC
Pushing/popping the reserved ebx register is surely less expensive
than a memory barrier.
Note that since ebx is a callee-save register, this is even safe for
signals (i.e. it would be safe even if we needed the value that cpuid
puts in %%ebx).
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 18:51:14 +0000 (13:51 -0500)]
add urcu/arch_generic.h
Most of the memory barrier definitions are shared between all
architectures, especially smp_* and mc/rmc/wmc. Put them in
a common file.
[edit by Mathieu Desnoyers]
+ * arch_defaults.h: common definitions for multiple architectures.
becomes
+ * arch_generic.h: common definitions for multiple architectures.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 18:50:32 +0000 (13:50 -0500)]
use autoconf symbolic linking
Instead of copying. This is less error-prone while developing and
lets Automake handle more stuff.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paolo Bonzini [Mon, 1 Mar 2010 18:49:54 +0000 (13:49 -0500)]
use kernel style makefile output
A breath of fresh air. Requires Automake 1.11, but the
patch degrades gracefully.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 19 Feb 2010 22:20:24 +0000 (17:20 -0500)]
update README for urcu-signal
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 19 Feb 2010 14:28:41 +0000 (09:28 -0500)]
list: new -> _new for c++ compatibility
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 19 Feb 2010 14:08:18 +0000 (09:08 -0500)]
rcuhlist: add head name fix
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 19 Feb 2010 04:45:40 +0000 (23:45 -0500)]
RCU list: add rcuhlist.h, add list_replace_rcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 14 Feb 2010 15:07:43 +0000 (10:07 -0500)]
tests: update writer cs len script for 64-core ppc
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 14 Feb 2010 14:06:47 +0000 (09:06 -0500)]
tests: update summary
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 14 Feb 2010 13:43:05 +0000 (08:43 -0500)]
urcu tests: add writer duration parameter
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 12 Feb 2010 22:52:50 +0000 (17:52 -0500)]
Update to version 0.4.1
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 12 Feb 2010 21:39:22 +0000 (16:39 -0500)]
urcu-static.h: use SYS_membarrier rather than __NR_membarrier
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 12 Feb 2010 01:11:44 +0000 (20:11 -0500)]
s390: fix arch_s390.h include of urcu/compiler.h
gcc -DHAVE_CONFIG_H -I. -I.. -I../urcu -DTORTURE_URCU -I.. -I.. -g -O2 -c -o rcutorture_urcu-urcutorture.o `test -f 'urcutorture.c' || echo './'`urcutorture.c
/bin/sh ../libtool --tag=CC --mode=link gcc -DTORTURE_URCU -I.. -I.. -g -O2 -lpthread -o rcutorture_urcu rcutorture_urcu-urcutorture.o ../urcu.c ../urcu-pointer.c
gcc -DTORTURE_URCU -I.. -I.. -g -O2 -o rcutorture_urcu rcutorture_urcu-urcutorture.o ../urcu.c ../urcu-pointer.c -lpthread
In file included from ../urcu-static.h:38,
from ../urcu.c:36:
../urcu/arch.h:31:22: error: compiler.h: No such file or directory
In file included from ../urcu/system.h:22,
from ../urcu/uatomic_arch.h:33,
from ../urcu-pointer.c:27:
../urcu/arch.h:31:22: error: compiler.h: No such file or directory
make[3]: *** [rcutorture_urcu] Error 1
make[3]: Leaving directory `/build/buildd-liburcu_0.4.0-1-s390-vwO9c1/liburcu-0.4.0/tests'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/build/buildd-liburcu_0.4.0-1-s390-vwO9c1/liburcu-0.4.0'
make[1]: *** [all] Error 2
dh_auto_build: make -j1 returned exit code 2
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
make[1]: Leaving directory `/build/buildd-liburcu_0.4.0-1-s390-vwO9c1/liburcu-0.4.0'
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 8 Feb 2010 21:57:57 +0000 (16:57 -0500)]
README: discuss mutex vs RCU interaction
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 8 Feb 2010 14:36:41 +0000 (09:36 -0500)]
standardize rcu_gp_ongoing
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 8 Feb 2010 14:28:14 +0000 (09:28 -0500)]
rename rcu_old_gp_ongoing to rcu_gp_ongoing
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 8 Feb 2010 14:18:43 +0000 (09:18 -0500)]
update LOAD_SHARED/STORE_SHARED for need_mb.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 8 Feb 2010 13:18:08 +0000 (08:18 -0500)]
urcu: use unsigned long instead of long
As it is currently designed, urcu scheme never overflows and we do not use the
upper "sign" bit. But, nevertheless, just in case we choose to do it differently
in the future, use an unsigned long type to allow:
- overflow
- defined used of 0x80000000
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Sat, 30 Jan 2010 18:29:21 +0000 (13:29 -0500)]
update version to 0.4.0
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Sat, 30 Jan 2010 18:28:35 +0000 (13:28 -0500)]
URCU: rename light/heavy barriers to slave/master
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Sat, 30 Jan 2010 18:21:27 +0000 (13:21 -0500)]
QSBR URCU: remove unused reader_barrier() declaration
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Sun, 17 Jan 2010 18:25:06 +0000 (13:25 -0500)]
Update comments
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Sun, 17 Jan 2010 17:15:44 +0000 (12:15 -0500)]
Internal cleanup
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Sun, 17 Jan 2010 16:42:56 +0000 (11:42 -0500)]
rename internal_rcu_lock() into mutex_lock/unlock(&rcu_gp_lock)
Cleanup.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Fri, 15 Jan 2010 16:32:35 +0000 (11:32 -0500)]
Add SIGURCU backward compatibility
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Thu, 14 Jan 2010 01:52:52 +0000 (20:52 -0500)]
Update support for MEMBARRIER_QUERY
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Wed, 13 Jan 2010 23:46:53 +0000 (18:46 -0500)]
Support sys_membarrier v6 ABI
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Wed, 13 Jan 2010 18:02:21 +0000 (13:02 -0500)]
Add sys_membarrier() dynamic detection, old liburcu.so -> liburcu-signal.so
See updated README for library renaming details.
liburcu is now dynamically detecting if sys_membarrier is available, and using
urcu-mb as fall back.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Wed, 13 Jan 2010 16:59:00 +0000 (11:59 -0500)]
urcu signal-based renames
reader_barrier renamed to smp_mb_light
force_mb_all_readers renamed to smp_mb_heavy
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Wed, 13 Jan 2010 16:37:14 +0000 (11:37 -0500)]
signal-based urcu: rename force_mb_all_threads -> force_mb_all_readers
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Wed, 13 Jan 2010 16:36:10 +0000 (11:36 -0500)]
Cleanup urcu-defer static header
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Wed, 13 Jan 2010 16:33:21 +0000 (11:33 -0500)]
API prefix standardization: urcu_ -> rcu_
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Sun, 10 Jan 2010 19:29:28 +0000 (14:29 -0500)]
version 0.3.4
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Pedro Alves [Sun, 10 Jan 2010 19:24:31 +0000 (14:24 -0500)]
Support earlier glibc sched_setaffinity
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Signed-off-by: Pedro Alves <pedro@codesourcery.com>
Mathieu Desnoyers [Sun, 10 Jan 2010 04:25:23 +0000 (23:25 -0500)]
Remove bogus ; from defines
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 4 Jan 2010 19:08:21 +0000 (14:08 -0500)]
version 0.3.3
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Sebastian Andrzej Siewior [Thu, 10 Dec 2009 19:20:16 +0000 (14:20 -0500)]
Consider __NO_LWSYNC__
This is set by the gcc when the target does not support the lwsync
opcode. This is the case for e500 core based CPUs.
I haven't touch tests/api_ppc.h because I don't see any users.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Thu, 10 Dec 2009 13:31:55 +0000 (08:31 -0500)]
version 0.3.2
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Tue, 8 Dec 2009 00:10:00 +0000 (19:10 -0500)]
s390 uatomic: fix new compiler support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 7 Dec 2009 14:39:20 +0000 (09:39 -0500)]
Add extern "C" to support linking userspace RCU library with C++ applications
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 7 Dec 2009 03:26:23 +0000 (22:26 -0500)]
s390 uatomic arch fix
In file included from urcu-static.h:40,
from urcu.c:35:
./urcu/uatomic_arch.h: In function ‘_uatomic_exchange’:
./urcu/uatomic_arch.h:88: warning: dereferencing ‘void *’ pointer
./urcu/uatomic_arch.h:89: warning: dereferencing ‘void *’ pointer
./urcu/uatomic_arch.h:89: error: expected ‘:’ or ‘)’ before ‘(’ token
./urcu/uatomic_arch.h: In function ‘_uatomic_cmpxchg’:
./urcu/uatomic_arch.h:131: warning: dereferencing ‘void *’ pointer
./urcu/uatomic_arch.h:132: warning: dereferencing ‘void *’ pointer
./urcu/uatomic_arch.h:132: error: expected ‘:’ or ‘)’ before ‘(’ token
Use same hidden pointer technique used for x86.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Sun, 6 Dec 2009 23:35:31 +0000 (18:35 -0500)]
Fix s390 uatomic ops new compiler support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Wed, 2 Dec 2009 17:37:46 +0000 (12:37 -0500)]
s390 uatomic: short memory operand support for new compilers
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Tue, 1 Dec 2009 19:09:47 +0000 (14:09 -0500)]
s390: uatomic add missing xchg return
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Tue, 1 Dec 2009 17:26:25 +0000 (12:26 -0500)]
s390: uatomic add missing inline and other { }
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Tue, 1 Dec 2009 17:22:17 +0000 (12:22 -0500)]
update s390 ifdefs
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Jon Bernard [Tue, 1 Dec 2009 17:20:09 +0000 (12:20 -0500)]
s390: add block after label
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Tue, 1 Dec 2009 16:19:07 +0000 (11:19 -0500)]
sparc,ppc,s390: uatomic ops update
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Tue, 1 Dec 2009 15:47:21 +0000 (10:47 -0500)]
Update arch_s390.h, missing definitions
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Tue, 1 Dec 2009 13:42:51 +0000 (08:42 -0500)]
s390: fix config.h include
gcc -DHAVE_CONFIG_H -I. -I./urcu -I./urcu -g -O2 -c urcu.c -fPIC -DPIC -o
.libs/urcu.o
In file included from urcu-static.h:38,
from urcu.c:35:
./urcu/arch.h:32:27: error: config/config.h: No such file or directory
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 16 Nov 2009 20:31:35 +0000 (15:31 -0500)]
Update version to 0.3.1
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 16 Nov 2009 20:27:50 +0000 (15:27 -0500)]
Support sparcv9 32-bit build
From: David Miller <davem@davemloft.net>
Subject: Re: [ltt-dev] Sparc64 support added to Userspace RCU
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Date: Thu, 22 Oct 2009 15:57:53 -0400
> Feedback is welcome,
__sparc_v8__ does not mean 64-bit longs or pointers as implied here:
"v8" was the last 32-bit standard of the cpu architecture.
Otherwise looks fine.
Although this port won't be very useful until it can be built in
32-bit mode. As most applications on sparc64 systems are still
32-bit. Like on powerpc, people only rarely build things 64-bit on
sparc64.
You need to build with "-Wa,-Av9a" on the GCC command line for that
case so that the assembler allows the v9 instructions emitted by your
macros, even when building for 32-bit.
Hope this helps.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: David Miller <davem@davemloft.net>
Mathieu Desnoyers [Thu, 12 Nov 2009 04:24:21 +0000 (23:24 -0500)]
Update readme
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Pierre-Marc Fournier [Wed, 11 Nov 2009 22:48:40 +0000 (17:48 -0500)]
cross-compilation: use $host instead of $target
$target should be used only when building a compiler. It indicates
the target system for which the compiler will build executables.
$host is the variable that should be used to indicate the type of
system the package we are compiling now will run on.
Also, update the README to say to use --host instead of --target.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Tue, 3 Nov 2009 14:49:57 +0000 (09:49 -0500)]
Update version to 0.3.0
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Tue, 3 Nov 2009 14:49:01 +0000 (09:49 -0500)]
urcu-defer: generate linker error if call_rcu() is used
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Fri, 23 Oct 2009 17:39:04 +0000 (13:39 -0400)]
update README for defer_rcu()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Fri, 23 Oct 2009 17:38:05 +0000 (13:38 -0400)]
Mark defer_rcu() API as experimental.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Fri, 23 Oct 2009 12:27:20 +0000 (08:27 -0400)]
Document urcu-defer usage with dlclose()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Fri, 23 Oct 2009 12:17:29 +0000 (08:17 -0400)]
Add defer_rcu_ratelimit()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Fri, 23 Oct 2009 12:05:19 +0000 (08:05 -0400)]
update readme for rcu_defer()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Fri, 23 Oct 2009 11:57:28 +0000 (07:57 -0400)]
urcu-defer: remove call_rcu() API, replace by defer_rcu()
Ensure we do not expose an API different from the kernel with the same name and
different semantic.
defer_rcu() cannot be called from within a RCU read-side C.S..
call_rcu() should eventually be re-implemented with struct rcu_head, permitting
to be called from within a RCU read-side C.S.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Thu, 22 Oct 2009 19:50:05 +0000 (15:50 -0400)]
Sparc64: complete and test implementation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Thu, 22 Oct 2009 19:11:08 +0000 (15:11 -0400)]
Add basic sparc64 support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 19 Oct 2009 23:44:11 +0000 (19:44 -0400)]
update version to 0.2.4
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 19 Oct 2009 23:43:34 +0000 (19:43 -0400)]
uatomic compat: complete i386 support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Mon, 19 Oct 2009 23:39:15 +0000 (19:39 -0400)]
uatomic: update atomic set/read, use STORE_SHARED/LOAD_SHARED
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Mathieu Desnoyers [Wed, 14 Oct 2009 22:21:55 +0000 (18:21 -0400)]
version 2.2.3
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
This page took 0.040836 seconds and 4 git commands to generate.