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