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