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