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