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