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