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