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