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