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