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