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