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