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