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