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