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