1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214
|
2011-12-12 Userspace RCU 0.6.7
* Add compat file for test urcu wfs
* Add missing compat file for wfq test
* hlist.h: Add missing stddef.h include for NULL
* call_rcu: Add missing call_rcu_before_fork and
call_rcu_after_fork_parent declarations
* Describe autotools/libtool/automake version dependency
* Remove m4_ifdef for AC_PROG_LIBTOOL (deprecated)
* Support older autotools
* Apply autoupdate to configure.ac
* Fix build for amd64 environment (for FreeBSD 8.2)
* Add missing rcu_dereference_sym_bp
* Install test scripts in the dist tarball
2011-11-03 Userspace RCU 0.6.6
* qsbr vs call_rcu : remove exit assertion
* Rename likely/unlikely to caa_likely/caa_unlikely
* Reinsert missing test_urcu_*.c files (missing in rename)
* rename test_qsbr to test_urcu_qsbr
* urcu-pointer: fix rcu_set_pointer unset return value
* Enhance API.txt documentation, add to Makefile as EXTRA_DIST
2011-09-29 Userspace RCU 0.6.5
* call_rcu: Document call_rcu requirements
* call_rcu: fix error handling of malloc error
* urcu call_rcu: Use RCU read-side protection for per-cpu call_rcu data
* urcu,call_rcu: Cleanup call_rcu_data pointers before use in child
* urcu,call_rcu: avoid create call_rcu_data for child when unneed
* urcu,defer_rcu: Make defer_rcu encoding more compact for marker
* urcu_defer: Use cancellation flag instead of pthread_cancel()
* urcu,call_rcu: protects call_rcu_data_list when remove node
* Create default call rcu data upon per-cpu call-rcu teardown
* powerpc: use __NO_LWSYNC__ check to use appropriate lwsync/sync opcode
* cmm: provide lightweight smp_rmb/smp_wmb on PPC
* atomic: provide seq_cst semantics on powerpc
* avoid leaking crdp for failed path
* Return -EEXIST when the old cpu call_rcu_data has not been removed
* protect writing to per_cpu_call_rcu_data[*]
* wake up default call_rcu thread after we move the leftover callbacks
* avoid memory leak in call_rcu_data_free()
* urcu call_rcu: fix use after free()
* use get_cpu_call_rcu_data() for get_call_rcu_data()
* init maxcpus before use
* call_rcu implementation: add missing static
* Document QSBR interaction with mutexes
* urcu-pointer: implement URCU_FORCE_CAST for C++ compatibility of urcu-pointer.h
* urcu-qsbr: use rcu_thread_offline/rcu_thread_online instead of inlining them
* Pair all_cpu call_rcu create with free
* QSBR: add missing wakeups in synchronize_rcu code
* cmm: do not generate code for smp_rmb/smp_wmb on x86_64
* cmm: let per-arch files provide cmm_smp_* barriers
* Optimize caa_get_cycles() for PowerPC64
* lfq/lfs tests: use call_rcu
* list: Add cds_list_first_entry
* rculfstack/queue: define _LGPL_SOURCE around static header include
* Add __rcu annotation (unimplemented)
* Fix incorrect fsf address in header files
* wfstack: push returns prior stack emptiness state
* Make lf stack push return if the stack was empty
* Document caa_container_of
* urcu-bp: do not call munmap for NULL registry at exit
* urcu libraries can directly use the _LGPL_SOURCE wfqueue
* rculfstack: document "push"
* Add runall.sh to tarball
* Fix build order of liburcu-cds-common
* Fix missing check for SYS_membarrier in map header
* urcu-qsbr: avoid useless futex wakeups and burning CPU for long grace periods
* api: reimplement BUILD_BUG_ON in compiler.h
* test api cleanup: remove unused primitives
* put thread offline while waiting for the init flag
* urcu: move private definitions to .c file
* urcu-bp: move private definitions to .c file
* urcu-qsbr: move private definitions to .c file
* rcutorture: fix rcutorture-qsbr
* wfqueue: fix type-incorrect assignment
* Fix tests Makefile EXTRA_DIST to use api.h
* Fix choice of default flavour in urcu/map/urcu.h
* api: remove list/hlist
* api: remove arch-specific files
* api: make api_gcc.h a superset of the other headers
* tests api: remove atomics
* put thread offline while waiting for the init flag
* urcu: move private definitions to .c file
* urcu-bp: move private definitions to .c file
* urcu-qsbr: move private definitions to .c file
* rcutorture: fix rcutorture-qsbr
* wfqueue: fix type-incorrect assignment
* Use caa_ prefix for min() and max()
2011-07-21 Userspace RCU 0.6.4
* uatomic: Fix ARM build errors in uatomic.
* urcu tests: hold mutex across use of custom allocator.
* Portability fixes to support FreeBSD 8.2.
2011-06-27 Userspace RCU 0.6.3
* uatomic: Fix i386 compatibility build errors in uatomic.
2011-06-13 Userspace RCU 0.6.2
* Fix build on powerpc.
2011-06-13 Userspace RCU 0.6.1
* Add missing headers into release tarball:
urcu-call-rcu-impl.h and urcu-defer-impl.h
2011-06-10 Userspace RCU 0.6.0
* Added call_rcu() support, graciously contributed by Paul E. McKenney.
* Added urcu/cds.h and merged all "Concurrent Data Containers" (CDS)
into a single .so: liburcu-cds.so to have a single header/shared
object holding all concurrency-aware data containers. It provides
support for RCU lists, queues and stacks at the moment.
* liburcu 0.6.0 now allows linking a single application with multiple
flavors of RCU. This required a library API change which is
incompatible with older 0.5.x liburcu. The .so version number
is therefore bumped from 0 to 1 (e.g. liburcu.so.1).
* Added "atfork" handling API, documented in README. Only useful for
processes using fork() without following exec().
* Renaming the following files, keeping the old files (producing a
compiler warning):
urcu/uatomic_arch.h -> urcu/uatomic.h
urcu/urcu-futex.h -> urcu/futex.h
urcu/urcu_ref.h -> urcu/ref.h
2011-03-04 Userspace RCU 0.5.4
* urcu-bp: Update fork() handling
Introduce
extern void rcu_bp_before_fork(void);
extern void rcu_bp_after_fork_parent(void);
extern void rcu_bp_after_fork_child(void);
to handle fork gracefully. These disable signals and hold
the registry mutex across forks. (this flavor of the liburcu
library ("bp" for "bulletproof") is mainly used by UST, the
user-space tracer).
2011-03-03 Userspace RCU 0.5.3
* Add support for older ARM single-CPU architecturess (pre-ARMv7)
(thanks to Jason Wessel from WindRiver).
* Fix ARMv7 cmm_rmb/cmm_wmb primitives (use a dmb barrier).
* Remove leftover list_t type from urcu/list.h (namespace cleanup).
* urcu_defer: handle malloc error value.
* Update README file to describe urcu interaction with fork() when not
* followed
by an exec() system call.
2010-11-18 Userspace RCU 0.5.2
* Fix renaming error introduced in 0.5.0.
2010-11-18 Userspace RCU 0.5.1
* Fix renaming error introduced in 0.5.0. (incomplete fix)
2010-11-18 Userspace RCU 0.5.0
* Version 0.5.0 changes the API presented by memory model,
architecture abstraction and data structure primitives in
headers. The prefixes are, respectively:
- cmm_ : Concurrent Memory Model
- caa_ : Concurrent Architecture Abstraction
- cds_ : Concurrent Data Structures
2010-03-04 Userspace RCU 0.4.2
* Add generic uatomic ops support.
* Bugfix in urcu-bp. (rare garbage collection bug occurring in
multithreaded environment). Only affects urcu-bp users (UST).
2010-02-12 Userspace RCU 0.4.1
* s390: compilation fix.
2010-01-30 Userspace RCU 0.4.0
* API change: SIGURCU -> SIGRCU
* API changes: standardize on rcu_ prefix.
* API change: urcu_init -> rcu_init.
* urcu/config.h options renamed to CONFIG_RCU_HAVE_FENCE,
CONFIG_RCU_HAVE_FUTEX, CONFIG_RCU_SMP, CONFIG_RCU_COMPAT_ARCH.
((moving from URCU -> RCU).
* library names changes: liburcu becomes the "default" version, using
sys_membarrier() when available, and using liburcu-mb as a
fallback.
* The signal-based liburcu is renamed from liburcu to
liburcu-signal. People previously using the signal-based
"liburcu" will automatically be moved to the "default" liburcu
version.
2009-11-16 Userspace RCU 0.3.1
* Add support for sparcv9 32-bit build.
* Update build system to use --host instead of --target.
2009-11-03 Userspace RCU 0.3.0
* API change for the "deferred work" interface.
2009-10-14 Userspace RCU 0.2.3
* Move to autotools.
* Automated architecture detection, with i386 fallback.
* Detect if NR_futex is on the system, fallback on portable
alternatives.
* Add configure mode for UP-only systems.
2009-10-02 Userspace RCU 0.2.2
* Phases out rcu_publish_content() api.
* Adds type checking to urcu-pointer.h pointer exchange primitives.
2009-10-02 Userspace RCU 0.2.1
* small header dependency fix for rculist.h.
* new "liburcu-bp.so" : "Bulletproof RCU", made especially for
the UST userspace tracer. It's a library that sacrifices a bit
of read-side performance for automatically monitoring thread
creation/removal. See README for details.
2009-10-01 Userspace RCU 0.2
* Clarify usage of rcu_cmpxchg_pointer, rcu_xchg_pointer,
rcu_set_pointer.
2009-09-29 Userspace RCU 0.1
* Initial release.
|