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