1 2016-04-26 Userspace RCU 0.8.9
2 * Fix: handle reference count overflow
3 * Fix: compat_futex should work-around futex signal-restart kernel bug
4 * Fix: urcu-signal: smp_mb_master() needs registry lock
5 * Fix: rculfhash only needs to include urcu-pointers.h
6 * Fix: format string signedness
7 * Use gcc atomics on aarch64/powerpc64le
8 * Fix: compat_futex: uninitialized ret variable
9 * Fix: compat_futex_noasync: don't override return value
10 * Fix: stable-0.8 branch does not have syscall-compat.h
11 * Fix: dynamic fallback to compat futex on sys_futex ENOSYS
13 2015-09-09 Userspace RCU 0.8.8
14 * Disable sys_membarrier
15 * Fix: volatile in assert()
16 * uatomic: Specify complete types for atomic function calls
17 * Fix: handle sys_futex() FUTEX_WAIT interrupted by signal
18 * Fix: compat_futex.c: *uaddr should be read as volatile
19 * Fix: make benchmark test run in oot build
20 * Fix: call_rcu_thread() affinity failure
21 * urcu: fix deprecation warning with new glibc
23 2015-04-28 Userspace RCU 0.8.7
24 * Fix: deadlock when thread join is issued in read-side C.S.
25 * Fix: rename RCU_DEBUG to DEBUG_RCU in urcu-qsbr.h
26 * Mark braced-groups within expressions with __extension__
27 * Fix: compat_futex_noasync race condition
28 * Fix: documentation: urcu-pointer.h: s/rcu_dereference_pointer/rcu_dereference/
29 * Fix: call rcu should call internal RCU API
31 2014-11-04 Userspace RCU 0.8.6
32 * Fix: silence gcc -Wextra warning
33 * compiler: use __GNUC__ instead of the undefined __GNUC_MAJOR__
34 * Fix: lfstack reversed empty/non-empty return value
35 * lfstack: fix: add missing __cds_lfs_init
37 2014-10-21 Userspace RCU 0.8.5
38 * Fix: preserve example files' timestamps when copying
39 * rculfhash: remove duplicated code
40 * rculfhash: handle pthread_create failures
41 * rculfhash: fall back to single-threaded resize on calloc failure
42 * x86: drop extra semi-colon in caa_cpu_relax
43 * Fix: Use after free in rcu_barrier()
44 * Fix: rcu_barrier(): uninitialized futex field
45 * call_rcu threads should clear their PAUSED flag when they unpause
46 * Fix: bring back dummy rcu_bp_exit symbol
48 2014-03-08 Userspace RCU 0.8.4
49 * Fix: move wait loop increment before first conditional block
51 2014-03-01 Userspace RCU 0.8.3
52 * Fix: high cpu usage in synchronize_rcu with long RCU read-side C.S.
54 2014-02-28 Userspace RCU 0.8.2
55 * Fix: out of tree build: doc/examples
56 * Fix: out of tree build tests/common
57 * tests/unit: use lib rather than source
58 * automake: Rename INCLUDES to AM_CPPFLAGS (new name)
59 * tests regressions: use lib rather than recompile from source
60 * tests: use common lib rather than recompile compat sources
61 * urcu tests: use lib rather than compile from source
62 * urcu mb tests: use lib rather than recompile from source
63 * urcu signal tests: use library rather than recompile source
64 * tests: move yield debug to common test library
65 * tests urcu bp: use lib rather than recompile source
66 * test_urcu_defer: link on urcu lib rather than recompile source
67 * tests/benchmark: use urcu qsbr lib rather than recompile from source
68 * Pass the CC variable to the example Makefiles
69 * Fix: urcu-bp interaction with threads vs constructors/destructors
70 * Fix undefined NULL pointer arithmetic
71 * Blacklist ARM gcc 4.8.0, 4.8.1, 4.8.2
72 * rculfhash: document max_nr_buckets = 0
74 2013-11-12 Userspace RCU 0.8.1
75 * tls-compat: fix comment typo
76 * Keep ABI compatible with already compiled LGPL applications
77 * Fix: tls-compat multi-lib conflict
78 * Use cross compiler for doc examples
79 * gcc warning fixes: -Wsign-compare and -Wextra
80 * Fix: urcu-qsbr: reversed logic on RCU_DEBUG
81 * Fix: urcu-bp segfault in glibc pthread_kill()
82 * Fix urcu-bp: don't move registry
83 * Fix: compat futex duplicated lock and completion
84 * Fix: i386 compat code duplicated mutex instances
85 * Fix: urcu-bp: Bulletproof RCU arena resize bug
86 * Fix: test_mutex.c uninitialized mutex
88 2013-09-06 Userspace RCU 0.8.0
89 * Fix: hash table growth (for small tables) should be limited
90 * Fix: doc/examples cross-build
91 * Introduce URCU_INLINE_SMALL_FUNCTIONS
92 * Add missing tests/common/Makefile.am
93 * README: document make check/regtest/bench
94 * tests: split in check, regtest and bench targets
95 * Cleanup: doc/examples makefile
96 * Fix: doc/examples VPATH build
97 * doc/examples: Move the LIBS after the OBJECTS in the Makefile
98 * Document build work-around on MacOS X
99 * Fix tests: use of uninitialized variables
100 * test_urcu_hash*: initialize TLS seeds
101 * doc/examples: cds_lfht_for_each_entry_duplicate
102 * doc/examples: cds_lfht_lookup
103 * doc/examples: cds_lfht_destroy
104 * doc/examples: cds_lfht_add_replace
105 * doc/examples: cds_lfht_add_unique
106 * doc/examples: cds_lfht_add/cds_lfht_del
107 * doc/examples: add rculfqueue example
108 * doc/examples: add synchronize_rcu()
109 * doc/examples: add bp flavor
110 * doc/examples: add dist toplevel makefile
111 * doc/examples: add membarrier flavor
112 * doc/examples: document call_rcu()
113 * doc/examples: update qsbr example
114 * urcu signal: remove assertion on exit
115 * doc/examples: signal flavor
116 * doc/examples: add mb flavor
117 * doc/examples: update qsbr
118 * doc/examples: introduce urcu-flavors examples directory
119 * doc/examples: enhance rcu-flavor-qsbr example
120 * doc/examples: rename qsbr-minimal to rcu-flavor-qsbr
121 * doc/examples: automake stop on error
122 * doc/examples: hlist
123 * hlist/rcuhlist update
124 * doc/examples: fix typo in list example
125 * rcuhlist: make pointer stores atomic
126 * hlist, rcuhlist: cleanup coding style
127 * doc/examples: lfstack
128 * doc/examples: update cds_wfs_pop_all_blocking
129 * doc/examples: cds_wfs_pop_all_blocking
130 * doc/examples: cds_wfs_pop
131 * doc/examples: add missing Makefile
132 * doc/examples: cds_wfs_push
133 * doc/wfcqueue: cds_wfcq_splice
134 * doc/examples: add cds_wfcq_dequeue
135 * doc/examples: wfcq needs to link against urcu-common
136 * doc/examples: update queue comment
137 * doc/examples: fix make clean
138 * gitignore: add qsbr-minimal
139 * doc/examples: cds_wfcq_enqueue
140 * doc/examples: Move LIBS to each makefile
141 * doc/examples: cds_list_for_each_rcu
142 * doc/examples: cds_list_for_each_entry_rcu
143 * doc/examples: cds_list_replace_rcu
144 * doc/examples: cds_list_add_tail_rcu
145 * doc/examples: cds_list_del_rcu
146 * doc/examples: cds_list_add_rcu
147 * rculist: ensure atomic updates of next pointers
148 * rculist: implement cds_list_add_tail_rcu
149 * rculist.h and list.h style cleanup
150 * example makefile: add missing cd ..
152 * Fix: examples Makefile on FreeBSD
153 * hash table test: don't redefine CACHE_LINE_SIZE
154 * tests: use thread-id.h wrapper
155 * Implement thread-id.h wrapper
156 * tests: add missing unsigned long casts to pthread_self()
157 * Fix: don't build examples in static builds
158 * Add QSBR minimal example
159 * compiler.h: implement CAA_ARRAY_SIZE()
160 * document rcu barrier
161 * rcu barrier: handle OOM die urcu_die
162 * Implement rcu_barrier()
163 * rculfhash: document destroy context limitations
166 * Update README testing info about FreeBSD
167 * test: fix api.h missing if brackets
168 * tests: fix incorrect counter
169 * Fix: membarrier fallback symbol conflict
170 * Fix: Use a filled signal mask to disable all signals
171 * urcu-bp: introduce struct urcu_gp
172 * Fix: struct urcu_gp broke multiflavor
173 * Cleanup test usage printout
174 * wfstack tests: use pop "last" state info
175 * wfstack: return whether pop is popping the last element
176 * wfcqueue tests: use dequeue empty state
177 * wfcqueue: return whether dequeue is dequeuing last element
178 * urcu: avoid false sharing for rcu_gp_ctr
179 * urcu: make the code of urcu-qsbr as normal urcu
180 * rculfhash: detect if resize/destroy are called within RCU read-side C.S.
181 * Documentation: rculfhash: cds_lfht_resize not within read-side C.S.
182 * fix: rculfhash don't change qsbr online state
183 * Add rcu_read_ongoing() API to each urcu flavor
184 * Add "sparc" host cpu to configure.ac
185 * futex: include syscall.h instead of sys/syscall.h
186 * Add tab to output in order to allow easy nesting of tables.
187 * Remove urcu-api-list.sh from dist tarball
188 * Add urcu-api-list.sh script
189 * list: implement cds_list_for_each_safe()
190 * Fix: tests/api.h use cpuset.h
191 * Fix hurd-i386: move cpuset tests outside of sched_setaffinity conditional
192 * Fix tests: finer-grained use of CPU_SET, CPU_ZERO and cpu_set_t
194 * Fix build on architectures with HAVE_SCHED_GETCPU but without HAVE_SYSCONF
195 * README: document that Clang 3.0 (based on LLVM 3.0) is supported
196 * clang: silence "unused expression result" warning
197 * rculfhash: add assertions on node alignment
198 * Spelling cleanups within comments and documentation
199 * Fix configure checks for Tile
201 * doc/cds-api.txt: expand documentation
202 * README: document each API file
204 * Add compilation support for the TileGX architecture
205 * wfstack: add nonblocking to _LGPL_SOURCE API
206 * Discourage use of pthread_atfork() for call_rcu handlers
207 * Fix call_rcu fork handling
208 * test: fork handling
209 * rculfhash: add cds_lfht_replace to the write operations in the comments
210 * urcu: fix comments for cds_list_for_each_prev()
211 * documentation: fix rcu-api.txt duplicates
212 * test wfcq: remove unneeded urcu.h include
213 * test wfs: remove unneeded urcu.h include
214 * urcu: declare test_urcu_multiflavor functions
215 * urcu: remove the wrong comma
216 * wfstack: implement nonblocking pop and next
217 * wfcqueue: document first/next return values
218 * wfstack: update comments about cds_wfs_empty/first being wait-free
219 * wfstack API: rename cds_wfs_first_blocking to cds_wfs_first
220 * wfstack test: test if number of push to empty vs pop_all match
221 * wfstack: document first/next return values
222 * test wfstack: enforce external mutex if needed by default
223 * test wfcqueue: enforce external mutex if needed by default
224 * urcu-mb/signal/membarrier: batch concurrent synchronize_rcu()
225 * urcu-wait: move queue management code into urcu-wait.h
226 * urcu-wait: move wait code into separate file
227 * urcu-qsbr: batch concurrent synchronize_rcu()
228 * tests: use standard malloc/free for synchronize_rcu()
229 * urcu-bp: move quiescent threads to separate list
230 * urcu-mb/signal/membarrier: move quiescent threads to separate list
231 * urcu-qsbr: move offline threads to separate list
232 * urcu-bp: improve 2-phase wait scheme
233 * urcu-mb/signal/membarrier: improve 2-phase wait scheme
234 * urcu-qsbr: improve 2-phase wait scheme
235 * wfcqueue: implement mutex-free splice
236 * wfcqueue: document empty criterion
237 * urcu-call-rcu: use wait-free splice return value
238 * test wfcqueue: add tests for queue state return value
239 * wfcqueue: enqueue and splice return queue state
240 * Fix: wfcqueue nonblocking dequeue
241 * wfcqueue: Fix lock and unlock functions
242 * runtests: Make path of time binary configurable
243 * urcu-qsbr: skip Q.S. reporting if already reported
244 * Fix TLS detection: test with linker, add --disable-compiler-tls
245 * Cleanup: cast pthread_self() return value to unsigned long
246 * Fallback mechanism not working on platform where TLS is unsupported
247 * Revert "Fix: cross-build: configure.ac should use --target, not --host"
248 * Fix: cross-build: configure.ac should use --target, not --host
249 * test_urcu_wfcq: add splice and nosync tests
250 * test_urcu_wfs: cleanup
251 * test_urcu_lfs: cleanup
252 * Fix static linking: add missing static for _defer_rcu
253 * tests: report error value for make check
254 * Add multiflavor test program
255 * Fix static linking: fix symbol name namespaces
256 * Fix static linking: add missing static to thr_defer
257 * Fix static linking: add missing static
258 * deprecation: fix build with gcc < 4.5
259 * wfstack.c: update copyright notice
260 * Update wfstack copyright notice
261 * Comment fix: update associated LGPL header name
262 * Update cds-api.txt following API deprecations
264 * Deprecate rculfstack
265 * wfcqueue: introduce nonblocking API
266 * lfstack: test pop_all and pop
267 * lfstack: implement empty, pop_all and iterators, document API
268 * lfstack: implement test
269 * lfstack: implement lock-free stack
270 * wfstack: implement pop_all and iteration tests
271 * wfstack: implement cds_wfs_pop_all and iterators, document API
272 * rculfhash test: fix trivial memleak and return node leak and errors
273 * rculfhash: add missing extern
274 * Cleanup: fix cppcheck errors
275 * wfcqueue: remove ancient comment
276 * test_urcu_lfq: remove rcu_defer_register_thread() from test_urcu_lfq
277 * test_urcu_lfq: test for the proper pointer
278 * test_urcu_lfs: remove rcu_defer_register_thread() from test_urcu_lfs
279 * test_urcu_lfs: test for the proper pointer
280 * wfcqueue: clarify locking usage
281 * Document APIs in README
282 * Test cleanup: replace "l" parameter by "loops"
283 * Add wfcqueue header to cds.h
284 * Fix: urcu-bp, urcu, urcu-qsbr should include wfcqueue
285 * Fix: call_rcu list corruption on teardown (documentation)
286 * call_rcu: remove head field alignement, explain wfcqueue motivation
287 * wfcqueue: update credits in patch documentation
288 * wfcqueue documentation: hint at for_each iterators
289 * Fix urcu-call-rcu-impl.h: false-sharing
290 * call_rcu: use wfcqueue, eliminate false-sharing
292 * wfcqueue: implement concurrency-efficient queue
293 * Ensure that read-side functions meet 10-line LGPL criterion
294 * tls-compat.h: document sigaltstack(2) limitation
295 * urcu: add notice to URCU_TLS() for it is not strictly async-signal-safe
296 * Document sigaltstack(2) limitation
297 * Documentation: update LICENSE file
299 2012-08-27 Userspace RCU 0.7.4
300 * rculfhash API documentation: document destroy RCU read-lock constraint
301 * Fix: rculfhash should be offline while waiting for resize to complete
302 * Add missing entry to gitignore
303 * urcu: move busy-wait code and name it ___cds_wfq_node_sync_next()
304 * urcu: fix compat_futex_noasync()
305 * urcu: add hint to DEFINE_URCU_TLS() for compound types
306 * Fix: CAA_BUILD_BUG_ON should refer to CAA_BUILD_BUG_ON_ZERO
308 * Compatibility: remove bash-ismsm from test scripts
309 * Fix inappropriate lib behavior: don't call exit()
310 * Fix: re-enable compatibility with autoconf < 2.64
311 * Fix c99 compatibility: use __asm__ and __volatile__ in public headers
312 * Fix c99 compatibility: use __typeof__ instead of typeof in public headers
313 * warning fix: tests urcutorture for NetBSD 5
315 2012-06-01 Userspace RCU 0.7.3
316 * Fix tests: make dist lib dependency
317 * Update README for OS supported, tests dependency
318 * Add CodingStyle to tarball
319 * Add coding style document
320 * Test fix: test_perthreadlock uninitialized mutex
321 * tests: support FreeBSD short "time" args
322 * freebsd 8.2 fix: define MAP_ANONYMOUS for compatibility
324 2012-05-24 Userspace RCU 0.7.2
325 * Fix library compatibility
327 2012-05-24 Userspace RCU 0.7.1
328 * fix: uatomic_set return value compile fix for non-x86 arch.
330 2012-05-21 Userspace RCU 0.7.0
331 * Cleanup: header comments coding style
332 * Document uatomic operations
333 * Update return value of "set" operations
334 * Fix mremap wrapper for NetBSD 5
335 * Use urcu/tls-compat.h
336 * Implement urcu/tls-compat.h
337 * Add TLS detection m4 macro
338 * document concurrent data structures
339 * documentation: refer to rcu-api.txt
340 * Move API.txt to doc/rcu-api.txt, install in system doc/
341 * rculfhash: document implied memory barriers
342 * rculfhash: Ensure future-proof memory barrier semantic consistency
343 * API cleanup: use "uatomic_*" in cmm_smp_mb__ API
344 * uatomic: add memory barrier API for and/or/add/sub/inc/sub
345 * rculfhash: add runhash.sh test script
346 * rculfhash tests: add missing check
347 * rculfhash: fix: race between replace and del operations
348 * rculfhash: replace unneeded rcu_dereference by CMM_LOAD_SHARED
349 * rculfhash: use do {} while (0) for dbg_printf()
350 * rculfhash: cleanup typo
351 * rculfhash: update API comments
352 * rculfhash: update comments in implementation
353 * rculfhash tests: add long hash chains tests
354 * rculfhash tests: add uniqueness test
355 * rculfhash test: print test name
356 * rculfhash: stress requirement in documentation
357 * rculfhash: fix typo
358 * rculfhash tests: use array of callbacks to modularize
359 * rculfhash tests: modularize tests
360 * rculfhash: document ordering guarantees
361 * rculfhash: document linearizability guarantees
362 * rculfhash: update removal comment
363 * Add missing files to .gitignore
364 * Fix out-of-tree build
365 * rculfhash: check malloc NULL pointer
366 * Fix uatomic sign cast
367 * Remove unused jhash.h file
368 * Fix: use known license text, fix incorrect FSF address
369 * Fix: add missing sched.h include in rculfhash.c
370 * Allow tests to run on architectures without per-cpu call_rcu support
371 * Hash table test: FreeBSD compatibility fix
372 * tests: define _GNU_SOURCE instead of __USE_GNU
373 * RCU lock-free hash table: implement cds_lfht_is_node_deleted()
374 * Define _GNU_SOURCE to access CPU_ZERO() macro in uClibc
375 * Install ChangeLog and README into system's doc
376 * Fix AC_LANG_SOURCE usage: only takes one parameter
377 * Fix autoconf futex check
378 * configure.ac: Use AC_LANG_SOURCE for if else macros
379 * Refresh autoconf files
381 * rculfhash: add comment about hash seed randomness within test program
382 * readme: state correct GCC dependency for ARM
383 * rculfhash: remove an invocation of bit_reverse_ulong() when adding
384 * rculfhash: remove unneeded conversion
385 * rculfhash: remove unneeded clear_flag()
386 * cds_lfht_replace: add checks for old/new node hash/value match
387 * rculfhash: use node instead of iter argument for deletion
388 * rculfhash: number of logically removed nodes should not appear in API
389 * Document that flags could be represented on 2 bits
390 * Add missing REMOVAL_OWNER_FLAG comment to cds_lfht_node comment
391 * _cds_lfht_del is not used for buckets anymore, remove parameter
392 * rculfhash: Relax atomicity guarantees required by removal operation
393 * remove unneeded "return;"
394 * simplify the deletion for bucket node
395 * Remove unneeded code
396 * Cleanup DEFINE_RCU_FLAVOR()
397 * Add cds_lfht_ prefix to fls_ulong, get_count_order_ulong, get_count_order_u32
398 * Merge RCU Lock-Free Resizable Hash Table
400 2011-12-12 Userspace RCU 0.6.7
401 * Add compat file for test urcu wfs
402 * Add missing compat file for wfq test
403 * hlist.h: Add missing stddef.h include for NULL
404 * call_rcu: Add missing call_rcu_before_fork and
405 call_rcu_after_fork_parent declarations
406 * Describe autotools/libtool/automake version dependency
407 * Remove m4_ifdef for AC_PROG_LIBTOOL (deprecated)
408 * Support older autotools
409 * Apply autoupdate to configure.ac
410 * Fix build for amd64 environment (for FreeBSD 8.2)
411 * Add missing rcu_dereference_sym_bp
412 * Install test scripts in the dist tarball
414 2011-11-03 Userspace RCU 0.6.6
415 * qsbr vs call_rcu : remove exit assertion
416 * Rename likely/unlikely to caa_likely/caa_unlikely
417 * Reinsert missing test_urcu_*.c files (missing in rename)
418 * rename test_qsbr to test_urcu_qsbr
419 * urcu-pointer: fix rcu_set_pointer unset return value
420 * Enhance API.txt documentation, add to Makefile as EXTRA_DIST
422 2011-09-29 Userspace RCU 0.6.5
423 * call_rcu: Document call_rcu requirements
424 * call_rcu: fix error handling of malloc error
425 * urcu call_rcu: Use RCU read-side protection for per-cpu call_rcu data
426 * urcu,call_rcu: Cleanup call_rcu_data pointers before use in child
427 * urcu,call_rcu: avoid create call_rcu_data for child when unneed
428 * urcu,defer_rcu: Make defer_rcu encoding more compact for marker
429 * urcu_defer: Use cancellation flag instead of pthread_cancel()
430 * urcu,call_rcu: protects call_rcu_data_list when remove node
431 * Create default call rcu data upon per-cpu call-rcu teardown
432 * powerpc: use __NO_LWSYNC__ check to use appropriate lwsync/sync opcode
433 * cmm: provide lightweight smp_rmb/smp_wmb on PPC
434 * atomic: provide seq_cst semantics on powerpc
435 * avoid leaking crdp for failed path
436 * Return -EEXIST when the old cpu call_rcu_data has not been removed
437 * protect writing to per_cpu_call_rcu_data[*]
438 * wake up default call_rcu thread after we move the leftover callbacks
439 * avoid memory leak in call_rcu_data_free()
440 * urcu call_rcu: fix use after free()
441 * use get_cpu_call_rcu_data() for get_call_rcu_data()
442 * init maxcpus before use
443 * call_rcu implementation: add missing static
444 * Document QSBR interaction with mutexes
445 * urcu-pointer: implement URCU_FORCE_CAST for C++ compatibility of urcu-pointer.h
446 * urcu-qsbr: use rcu_thread_offline/rcu_thread_online instead of inlining them
447 * Pair all_cpu call_rcu create with free
448 * QSBR: add missing wakeups in synchronize_rcu code
449 * cmm: do not generate code for smp_rmb/smp_wmb on x86_64
450 * cmm: let per-arch files provide cmm_smp_* barriers
451 * Optimize caa_get_cycles() for PowerPC64
452 * lfq/lfs tests: use call_rcu
453 * list: Add cds_list_first_entry
454 * rculfstack/queue: define _LGPL_SOURCE around static header include
455 * Add __rcu annotation (unimplemented)
456 * Fix incorrect fsf address in header files
457 * wfstack: push returns prior stack emptiness state
458 * Make lf stack push return if the stack was empty
459 * Document caa_container_of
460 * urcu-bp: do not call munmap for NULL registry at exit
461 * urcu libraries can directly use the _LGPL_SOURCE wfqueue
462 * rculfstack: document "push"
463 * Add runall.sh to tarball
464 * Fix build order of liburcu-cds-common
465 * Fix missing check for SYS_membarrier in map header
466 * urcu-qsbr: avoid useless futex wakeups and burning CPU for long grace periods
467 * api: reimplement BUILD_BUG_ON in compiler.h
468 * test api cleanup: remove unused primitives
469 * put thread offline while waiting for the init flag
470 * urcu: move private definitions to .c file
471 * urcu-bp: move private definitions to .c file
472 * urcu-qsbr: move private definitions to .c file
473 * rcutorture: fix rcutorture-qsbr
474 * wfqueue: fix type-incorrect assignment
475 * Fix tests Makefile EXTRA_DIST to use api.h
476 * Fix choice of default flavour in urcu/map/urcu.h
477 * api: remove list/hlist
478 * api: remove arch-specific files
479 * api: make api_gcc.h a superset of the other headers
480 * tests api: remove atomics
481 * put thread offline while waiting for the init flag
482 * urcu: move private definitions to .c file
483 * urcu-bp: move private definitions to .c file
484 * urcu-qsbr: move private definitions to .c file
485 * rcutorture: fix rcutorture-qsbr
486 * wfqueue: fix type-incorrect assignment
487 * Use caa_ prefix for min() and max()
489 2011-07-21 Userspace RCU 0.6.4
490 * uatomic: Fix ARM build errors in uatomic.
491 * urcu tests: hold mutex across use of custom allocator.
492 * Portability fixes to support FreeBSD 8.2.
494 2011-06-27 Userspace RCU 0.6.3
495 * uatomic: Fix i386 compatibility build errors in uatomic.
497 2011-06-13 Userspace RCU 0.6.2
498 * Fix build on powerpc.
500 2011-06-13 Userspace RCU 0.6.1
501 * Add missing headers into release tarball:
502 urcu-call-rcu-impl.h and urcu-defer-impl.h
504 2011-06-10 Userspace RCU 0.6.0
505 * Added call_rcu() support, graciously contributed by Paul E. McKenney.
506 * Added urcu/cds.h and merged all "Concurrent Data Containers" (CDS)
507 into a single .so: liburcu-cds.so to have a single header/shared
508 object holding all concurrency-aware data containers. It provides
509 support for RCU lists, queues and stacks at the moment.
510 * liburcu 0.6.0 now allows linking a single application with multiple
511 flavors of RCU. This required a library API change which is
512 incompatible with older 0.5.x liburcu. The .so version number
513 is therefore bumped from 0 to 1 (e.g. liburcu.so.1).
514 * Added "atfork" handling API, documented in README. Only useful for
515 processes using fork() without following exec().
516 * Renaming the following files, keeping the old files (producing a
518 urcu/uatomic_arch.h -> urcu/uatomic.h
519 urcu/urcu-futex.h -> urcu/futex.h
520 urcu/urcu_ref.h -> urcu/ref.h
522 2011-03-04 Userspace RCU 0.5.4
523 * urcu-bp: Update fork() handling
527 extern void rcu_bp_before_fork(void);
528 extern void rcu_bp_after_fork_parent(void);
529 extern void rcu_bp_after_fork_child(void);
531 to handle fork gracefully. These disable signals and hold
532 the registry mutex across forks. (this flavor of the liburcu
533 library ("bp" for "bulletproof") is mainly used by UST, the
536 2011-03-03 Userspace RCU 0.5.3
537 * Add support for older ARM single-CPU architecturess (pre-ARMv7)
538 (thanks to Jason Wessel from WindRiver).
539 * Fix ARMv7 cmm_rmb/cmm_wmb primitives (use a dmb barrier).
540 * Remove leftover list_t type from urcu/list.h (namespace cleanup).
541 * urcu_defer: handle malloc error value.
542 * Update README file to describe urcu interaction with fork() when not
544 by an exec() system call.
546 2010-11-18 Userspace RCU 0.5.2
547 * Fix renaming error introduced in 0.5.0.
549 2010-11-18 Userspace RCU 0.5.1
550 * Fix renaming error introduced in 0.5.0. (incomplete fix)
552 2010-11-18 Userspace RCU 0.5.0
553 * Version 0.5.0 changes the API presented by memory model,
554 architecture abstraction and data structure primitives in
555 headers. The prefixes are, respectively:
556 - cmm_ : Concurrent Memory Model
557 - caa_ : Concurrent Architecture Abstraction
558 - cds_ : Concurrent Data Structures
560 2010-03-04 Userspace RCU 0.4.2
561 * Add generic uatomic ops support.
562 * Bugfix in urcu-bp. (rare garbage collection bug occurring in
563 multithreaded environment). Only affects urcu-bp users (UST).
565 2010-02-12 Userspace RCU 0.4.1
566 * s390: compilation fix.
568 2010-01-30 Userspace RCU 0.4.0
569 * API change: SIGURCU -> SIGRCU
570 * API changes: standardize on rcu_ prefix.
571 * API change: urcu_init -> rcu_init.
572 * urcu/config.h options renamed to CONFIG_RCU_HAVE_FENCE,
573 CONFIG_RCU_HAVE_FUTEX, CONFIG_RCU_SMP, CONFIG_RCU_COMPAT_ARCH.
574 ((moving from URCU -> RCU).
575 * library names changes: liburcu becomes the "default" version, using
576 sys_membarrier() when available, and using liburcu-mb as a
578 * The signal-based liburcu is renamed from liburcu to
579 liburcu-signal. People previously using the signal-based
580 "liburcu" will automatically be moved to the "default" liburcu
583 2009-11-16 Userspace RCU 0.3.1
584 * Add support for sparcv9 32-bit build.
585 * Update build system to use --host instead of --target.
587 2009-11-03 Userspace RCU 0.3.0
588 * API change for the "deferred work" interface.
590 2009-10-14 Userspace RCU 0.2.3
592 * Automated architecture detection, with i386 fallback.
593 * Detect if NR_futex is on the system, fallback on portable
595 * Add configure mode for UP-only systems.
597 2009-10-02 Userspace RCU 0.2.2
598 * Phases out rcu_publish_content() api.
599 * Adds type checking to urcu-pointer.h pointer exchange primitives.
601 2009-10-02 Userspace RCU 0.2.1
602 * small header dependency fix for rculist.h.
603 * new "liburcu-bp.so" : "Bulletproof RCU", made especially for
604 the UST userspace tracer. It's a library that sacrifices a bit
605 of read-side performance for automatically monitoring thread
606 creation/removal. See README for details.
608 2009-10-01 Userspace RCU 0.2
609 * Clarify usage of rcu_cmpxchg_pointer, rcu_xchg_pointer,
612 2009-09-29 Userspace RCU 0.1