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