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