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