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