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