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