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