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