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