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