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