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