Version 0.7.16
[userspace-rcu.git] / ChangeLog
1 2015-10-16 Userspace RCU 0.7.16
2 * Fix: format string signedness
3 * Use gcc atomics on aarch64/powerpc64le
4 * Fix: compat_futex: uninitialized ret variable
5 * Fix: compat_futex_noasync: don't override return value
6 * Fix: stable-0.7 branch does not have syscall-compat.h
7 * Fix: dynamic fallback to compat futex on sys_futex ENOSYS
8
9 2015-09-09 Userspace RCU 0.7.15
10 * Disable sys_membarrier
11 * uatomic: Specify complete types for atomic function calls
12 * Fix: handle sys_futex() FUTEX_WAIT interrupted by signal
13 * Fix: compat_futex.c: *uaddr should be read as volatile
14 * Fix: call_rcu_thread() affinity failure
15 * urcu: fix deprecation warning with new glibc
16
17 2015-04-28 Userspace RCU 0.7.14
18 * Fix: call rcu should call internal RCU API
19 * Fix: deadlock when thread join is issued in read-side C.S.
20 * Fix: rename RCU_DEBUG to DEBUG_RCU in urcu-qsbr.h
21 * Mark braced-groups within expressions with __extension__
22 * Fix: compat_futex_noasync race condition
23 * Fix: documentation: urcu-pointer.h: s/rcu_dereference_pointer/rcu_dereference/
24 * Fix: silence gcc -Wextra warning
25
26 2014-10-21 Userspace RCU 0.7.13
27 * rculfhash: remove duplicated code
28 * rculfhash: handle pthread_create failures
29 * rculfhash: fall back to single-threaded resize on calloc failure
30 * x86: drop extra semi-colon in caa_cpu_relax
31 * call_rcu threads should clear their PAUSED flag when they unpause
32 * Fix: bring back dummy rcu_bp_exit symbol
33
34 2014-03-08 Userspace RCU 0.7.12
35 * Fix: move wait loop increment before first conditional block
36
37 2014-03-01 Userspace RCU 0.7.11
38 * Fix: high cpu usage in synchronize_rcu with long RCU read-side C.S.
39
40 2014-02-28 Userspace RCU 0.7.10
41 * Fix: urcu-bp interaction with threads vs constructors/destructors
42 * Fix undefined NULL pointer arithmetic
43 * Blacklist ARM gcc 4.8.0, 4.8.1, 4.8.2
44 * rculfhash: document max_nr_buckets = 0
45
46 2013-11-12 Userspace RCU 0.7.9
47 * tls-compat: fix comment typo
48 * Keep ABI compatible with already compiled LGPL applications
49 * Fix: tls-compat multi-lib conflict
50 * gcc warning fixes: -Wsign-compare and -Wextra
51 * Fix: urcu-qsbr: reversed logic on RCU_DEBUG
52 * Fix: urcu-bp segfault in glibc pthread_kill()
53 * Fix urcu-bp: don't move registry
54 * Fix: compat futex duplicated lock and completion
55 * Fix: i386 compat code duplicated mutex instances
56 * Fix: urcu-bp: Bulletproof RCU arena resize bug
57 * Fix: test_mutex.c uninitialized mutex
58
59 2013-09-06 Userspace RCU 0.7.8
60 * Fix: hash table growth (for small tables) should be limited
61 * Document build work-around on MacOS X
62 * Fix tests: use of uninitialized variables
63 * tests: add missing unsigned long casts to pthread_self()
64
65 2013-06-18 Userspace RCU 0.7.7
66 * rculfhash: document destroy context limitation
67 * Fix: Use a filled signal mask to disable all signals
68 * Document: rculfhash destroy and resize side-effect in 0.7
69 * Add "sparc" host cpu to configure.ac
70 * Fix: tests/api.h use cpuset.h
71 * Fix hurd-i386: move cpuset tests outside of sched_setaffinity conditional
72 * Fix tests: finer-grained use of CPU_SET, CPU_ZERO and cpu_set_t
73 * Test for CPU_SET
74 * Fix build on architectures with HAVE_SCHED_GETCPU but without HAVE_SYSCONF
75 * README: document that Clang 3.0 (based on LLVM 3.0) is supported
76 * clang: silence "unused expression result" warning
77 * rculfhash: add assertions on node alignment
78 * uatomic: style fix
79
80 2013-01-09 Userspace RCU 0.7.6
81 * Discourage use of pthread_atfork() for call_rcu handlers
82 * Fix call_rcu fork handling
83 * test: fork handling
84 * Fix TLS detection: test with linker, add --disable-compiler-tls
85 * Cleanup: cast pthread_self() return value to unsigned long
86 * Fallback mechanism not working on platform where TLS is unsupported
87
88 2012-10-12 Userspace RCU 0.7.5
89 * 19cf3ae Fix: call_rcu list corruption on teardown
90 * Ensure that read-side functions meet 10-line LGPL criterion
91 * tls-compat.h: document sigaltstack(2) limitation
92 * urcu: add notice to URCU_TLS() for it is not strictly async-signal-safe
93 * Document sigaltstack(2) limitation
94 * Documentation: update LICENSE file
95
96 2012-08-27 Userspace RCU 0.7.4
97 * rculfhash API documentation: document destroy RCU read-lock constraint
98 * Fix: rculfhash should be offline while waiting for resize to complete
99 * Add missing entry to gitignore
100 * urcu: move busy-wait code and name it ___cds_wfq_node_sync_next()
101 * urcu: fix compat_futex_noasync()
102 * urcu: add hint to DEFINE_URCU_TLS() for compound types
103 * Fix: CAA_BUILD_BUG_ON should refer to CAA_BUILD_BUG_ON_ZERO
104 * Add MIPS support
105 * Compatibility: remove bash-ismsm from test scripts
106 * Fix inappropriate lib behavior: don't call exit()
107 * Fix: re-enable compatibility with autoconf < 2.64
108 * Fix c99 compatibility: use __asm__ and __volatile__ in public headers
109 * Fix c99 compatibility: use __typeof__ instead of typeof in public headers
110 * warning fix: tests urcutorture for NetBSD 5
111
112 2012-06-01 Userspace RCU 0.7.3
113 * Fix tests: make dist lib dependency
114 * Update README for OS supported, tests dependency
115 * Add CodingStyle to tarball
116 * Add coding style document
117 * Test fix: test_perthreadlock uninitialized mutex
118 * tests: support FreeBSD short "time" args
119 * freebsd 8.2 fix: define MAP_ANONYMOUS for compatibility
120
121 2012-05-24 Userspace RCU 0.7.2
122 * Fix library compatibility
123
124 2012-05-24 Userspace RCU 0.7.1
125 * fix: uatomic_set return value compile fix for non-x86 arch.
126
127 2012-05-21 Userspace RCU 0.7.0
128 * Cleanup: header comments coding style
129 * Document uatomic operations
130 * Update return value of "set" operations
131 * Fix mremap wrapper for NetBSD 5
132 * Use urcu/tls-compat.h
133 * Implement urcu/tls-compat.h
134 * Add TLS detection m4 macro
135 * document concurrent data structures
136 * documentation: refer to rcu-api.txt
137 * Move API.txt to doc/rcu-api.txt, install in system doc/
138 * rculfhash: document implied memory barriers
139 * rculfhash: Ensure future-proof memory barrier semantic consistency
140 * API cleanup: use "uatomic_*" in cmm_smp_mb__ API
141 * uatomic: add memory barrier API for and/or/add/sub/inc/sub
142 * rculfhash: add runhash.sh test script
143 * rculfhash tests: add missing check
144 * rculfhash: fix: race between replace and del operations
145 * rculfhash: replace unneeded rcu_dereference by CMM_LOAD_SHARED
146 * rculfhash: use do {} while (0) for dbg_printf()
147 * rculfhash: cleanup typo
148 * rculfhash: update API comments
149 * rculfhash: update comments in implementation
150 * rculfhash tests: add long hash chains tests
151 * rculfhash tests: add uniqueness test
152 * rculfhash test: print test name
153 * rculfhash: stress requirement in documentation
154 * rculfhash: fix typo
155 * rculfhash tests: use array of callbacks to modularize
156 * rculfhash tests: modularize tests
157 * rculfhash: document ordering guarantees
158 * rculfhash: document linearizability guarantees
159 * rculfhash: update removal comment
160 * Add missing files to .gitignore
161 * Fix out-of-tree build
162 * rculfhash: check malloc NULL pointer
163 * Fix uatomic sign cast
164 * Remove unused jhash.h file
165 * Fix: use known license text, fix incorrect FSF address
166 * Fix: add missing sched.h include in rculfhash.c
167 * Allow tests to run on architectures without per-cpu call_rcu support
168 * Hash table test: FreeBSD compatibility fix
169 * tests: define _GNU_SOURCE instead of __USE_GNU
170 * RCU lock-free hash table: implement cds_lfht_is_node_deleted()
171 * Define _GNU_SOURCE to access CPU_ZERO() macro in uClibc
172 * Install ChangeLog and README into system's doc
173 * Fix AC_LANG_SOURCE usage: only takes one parameter
174 * Fix autoconf futex check
175 * configure.ac: Use AC_LANG_SOURCE for if else macros
176 * Refresh autoconf files
177 * Update gitignore
178 * rculfhash: add comment about hash seed randomness within test program
179 * readme: state correct GCC dependency for ARM
180 * rculfhash: remove an invocation of bit_reverse_ulong() when adding
181 * rculfhash: remove unneeded conversion
182 * rculfhash: remove unneeded clear_flag()
183 * cds_lfht_replace: add checks for old/new node hash/value match
184 * rculfhash: use node instead of iter argument for deletion
185 * rculfhash: number of logically removed nodes should not appear in API
186 * Document that flags could be represented on 2 bits
187 * Add missing REMOVAL_OWNER_FLAG comment to cds_lfht_node comment
188 * _cds_lfht_del is not used for buckets anymore, remove parameter
189 * rculfhash: Relax atomicity guarantees required by removal operation
190 * remove unneeded "return;"
191 * simplify the deletion for bucket node
192 * Remove unneeded code
193 * Cleanup DEFINE_RCU_FLAVOR()
194 * Add cds_lfht_ prefix to fls_ulong, get_count_order_ulong, get_count_order_u32
195 * Merge RCU Lock-Free Resizable Hash Table
196
197 2011-12-12 Userspace RCU 0.6.7
198 * Add compat file for test urcu wfs
199 * Add missing compat file for wfq test
200 * hlist.h: Add missing stddef.h include for NULL
201 * call_rcu: Add missing call_rcu_before_fork and
202 call_rcu_after_fork_parent declarations
203 * Describe autotools/libtool/automake version dependency
204 * Remove m4_ifdef for AC_PROG_LIBTOOL (deprecated)
205 * Support older autotools
206 * Apply autoupdate to configure.ac
207 * Fix build for amd64 environment (for FreeBSD 8.2)
208 * Add missing rcu_dereference_sym_bp
209 * Install test scripts in the dist tarball
210
211 2011-11-03 Userspace RCU 0.6.6
212 * qsbr vs call_rcu : remove exit assertion
213 * Rename likely/unlikely to caa_likely/caa_unlikely
214 * Reinsert missing test_urcu_*.c files (missing in rename)
215 * rename test_qsbr to test_urcu_qsbr
216 * urcu-pointer: fix rcu_set_pointer unset return value
217 * Enhance API.txt documentation, add to Makefile as EXTRA_DIST
218
219 2011-09-29 Userspace RCU 0.6.5
220 * call_rcu: Document call_rcu requirements
221 * call_rcu: fix error handling of malloc error
222 * urcu call_rcu: Use RCU read-side protection for per-cpu call_rcu data
223 * urcu,call_rcu: Cleanup call_rcu_data pointers before use in child
224 * urcu,call_rcu: avoid create call_rcu_data for child when unneed
225 * urcu,defer_rcu: Make defer_rcu encoding more compact for marker
226 * urcu_defer: Use cancellation flag instead of pthread_cancel()
227 * urcu,call_rcu: protects call_rcu_data_list when remove node
228 * Create default call rcu data upon per-cpu call-rcu teardown
229 * powerpc: use __NO_LWSYNC__ check to use appropriate lwsync/sync opcode
230 * cmm: provide lightweight smp_rmb/smp_wmb on PPC
231 * atomic: provide seq_cst semantics on powerpc
232 * avoid leaking crdp for failed path
233 * Return -EEXIST when the old cpu call_rcu_data has not been removed
234 * protect writing to per_cpu_call_rcu_data[*]
235 * wake up default call_rcu thread after we move the leftover callbacks
236 * avoid memory leak in call_rcu_data_free()
237 * urcu call_rcu: fix use after free()
238 * use get_cpu_call_rcu_data() for get_call_rcu_data()
239 * init maxcpus before use
240 * call_rcu implementation: add missing static
241 * Document QSBR interaction with mutexes
242 * urcu-pointer: implement URCU_FORCE_CAST for C++ compatibility of urcu-pointer.h
243 * urcu-qsbr: use rcu_thread_offline/rcu_thread_online instead of inlining them
244 * Pair all_cpu call_rcu create with free
245 * QSBR: add missing wakeups in synchronize_rcu code
246 * cmm: do not generate code for smp_rmb/smp_wmb on x86_64
247 * cmm: let per-arch files provide cmm_smp_* barriers
248 * Optimize caa_get_cycles() for PowerPC64
249 * lfq/lfs tests: use call_rcu
250 * list: Add cds_list_first_entry
251 * rculfstack/queue: define _LGPL_SOURCE around static header include
252 * Add __rcu annotation (unimplemented)
253 * Fix incorrect fsf address in header files
254 * wfstack: push returns prior stack emptiness state
255 * Make lf stack push return if the stack was empty
256 * Document caa_container_of
257 * urcu-bp: do not call munmap for NULL registry at exit
258 * urcu libraries can directly use the _LGPL_SOURCE wfqueue
259 * rculfstack: document "push"
260 * Add runall.sh to tarball
261 * Fix build order of liburcu-cds-common
262 * Fix missing check for SYS_membarrier in map header
263 * urcu-qsbr: avoid useless futex wakeups and burning CPU for long grace periods
264 * api: reimplement BUILD_BUG_ON in compiler.h
265 * test api cleanup: remove unused primitives
266 * put thread offline while waiting for the init flag
267 * urcu: move private definitions to .c file
268 * urcu-bp: move private definitions to .c file
269 * urcu-qsbr: move private definitions to .c file
270 * rcutorture: fix rcutorture-qsbr
271 * wfqueue: fix type-incorrect assignment
272 * Fix tests Makefile EXTRA_DIST to use api.h
273 * Fix choice of default flavour in urcu/map/urcu.h
274 * api: remove list/hlist
275 * api: remove arch-specific files
276 * api: make api_gcc.h a superset of the other headers
277 * tests api: remove atomics
278 * put thread offline while waiting for the init flag
279 * urcu: move private definitions to .c file
280 * urcu-bp: move private definitions to .c file
281 * urcu-qsbr: move private definitions to .c file
282 * rcutorture: fix rcutorture-qsbr
283 * wfqueue: fix type-incorrect assignment
284 * Use caa_ prefix for min() and max()
285
286 2011-07-21 Userspace RCU 0.6.4
287 * uatomic: Fix ARM build errors in uatomic.
288 * urcu tests: hold mutex across use of custom allocator.
289 * Portability fixes to support FreeBSD 8.2.
290
291 2011-06-27 Userspace RCU 0.6.3
292 * uatomic: Fix i386 compatibility build errors in uatomic.
293
294 2011-06-13 Userspace RCU 0.6.2
295 * Fix build on powerpc.
296
297 2011-06-13 Userspace RCU 0.6.1
298 * Add missing headers into release tarball:
299 urcu-call-rcu-impl.h and urcu-defer-impl.h
300
301 2011-06-10 Userspace RCU 0.6.0
302 * Added call_rcu() support, graciously contributed by Paul E. McKenney.
303 * Added urcu/cds.h and merged all "Concurrent Data Containers" (CDS)
304 into a single .so: liburcu-cds.so to have a single header/shared
305 object holding all concurrency-aware data containers. It provides
306 support for RCU lists, queues and stacks at the moment.
307 * liburcu 0.6.0 now allows linking a single application with multiple
308 flavors of RCU. This required a library API change which is
309 incompatible with older 0.5.x liburcu. The .so version number
310 is therefore bumped from 0 to 1 (e.g. liburcu.so.1).
311 * Added "atfork" handling API, documented in README. Only useful for
312 processes using fork() without following exec().
313 * Renaming the following files, keeping the old files (producing a
314 compiler warning):
315 urcu/uatomic_arch.h -> urcu/uatomic.h
316 urcu/urcu-futex.h -> urcu/futex.h
317 urcu/urcu_ref.h -> urcu/ref.h
318
319 2011-03-04 Userspace RCU 0.5.4
320 * urcu-bp: Update fork() handling
321
322 Introduce
323
324 extern void rcu_bp_before_fork(void);
325 extern void rcu_bp_after_fork_parent(void);
326 extern void rcu_bp_after_fork_child(void);
327
328 to handle fork gracefully. These disable signals and hold
329 the registry mutex across forks. (this flavor of the liburcu
330 library ("bp" for "bulletproof") is mainly used by UST, the
331 user-space tracer).
332
333 2011-03-03 Userspace RCU 0.5.3
334 * Add support for older ARM single-CPU architecturess (pre-ARMv7)
335 (thanks to Jason Wessel from WindRiver).
336 * Fix ARMv7 cmm_rmb/cmm_wmb primitives (use a dmb barrier).
337 * Remove leftover list_t type from urcu/list.h (namespace cleanup).
338 * urcu_defer: handle malloc error value.
339 * Update README file to describe urcu interaction with fork() when not
340 * followed
341 by an exec() system call.
342
343 2010-11-18 Userspace RCU 0.5.2
344 * Fix renaming error introduced in 0.5.0.
345
346 2010-11-18 Userspace RCU 0.5.1
347 * Fix renaming error introduced in 0.5.0. (incomplete fix)
348
349 2010-11-18 Userspace RCU 0.5.0
350 * Version 0.5.0 changes the API presented by memory model,
351 architecture abstraction and data structure primitives in
352 headers. The prefixes are, respectively:
353 - cmm_ : Concurrent Memory Model
354 - caa_ : Concurrent Architecture Abstraction
355 - cds_ : Concurrent Data Structures
356
357 2010-03-04 Userspace RCU 0.4.2
358 * Add generic uatomic ops support.
359 * Bugfix in urcu-bp. (rare garbage collection bug occurring in
360 multithreaded environment). Only affects urcu-bp users (UST).
361
362 2010-02-12 Userspace RCU 0.4.1
363 * s390: compilation fix.
364
365 2010-01-30 Userspace RCU 0.4.0
366 * API change: SIGURCU -> SIGRCU
367 * API changes: standardize on rcu_ prefix.
368 * API change: urcu_init -> rcu_init.
369 * urcu/config.h options renamed to CONFIG_RCU_HAVE_FENCE,
370 CONFIG_RCU_HAVE_FUTEX, CONFIG_RCU_SMP, CONFIG_RCU_COMPAT_ARCH.
371 ((moving from URCU -> RCU).
372 * library names changes: liburcu becomes the "default" version, using
373 sys_membarrier() when available, and using liburcu-mb as a
374 fallback.
375 * The signal-based liburcu is renamed from liburcu to
376 liburcu-signal. People previously using the signal-based
377 "liburcu" will automatically be moved to the "default" liburcu
378 version.
379
380 2009-11-16 Userspace RCU 0.3.1
381 * Add support for sparcv9 32-bit build.
382 * Update build system to use --host instead of --target.
383
384 2009-11-03 Userspace RCU 0.3.0
385 * API change for the "deferred work" interface.
386
387 2009-10-14 Userspace RCU 0.2.3
388 * Move to autotools.
389 * Automated architecture detection, with i386 fallback.
390 * Detect if NR_futex is on the system, fallback on portable
391 alternatives.
392 * Add configure mode for UP-only systems.
393
394 2009-10-02 Userspace RCU 0.2.2
395 * Phases out rcu_publish_content() api.
396 * Adds type checking to urcu-pointer.h pointer exchange primitives.
397
398 2009-10-02 Userspace RCU 0.2.1
399 * small header dependency fix for rculist.h.
400 * new "liburcu-bp.so" : "Bulletproof RCU", made especially for
401 the UST userspace tracer. It's a library that sacrifices a bit
402 of read-side performance for automatically monitoring thread
403 creation/removal. See README for details.
404
405 2009-10-01 Userspace RCU 0.2
406 * Clarify usage of rcu_cmpxchg_pointer, rcu_xchg_pointer,
407 rcu_set_pointer.
408
409 2009-09-29 Userspace RCU 0.1
410 * Initial release.
This page took 0.035855 seconds and 4 git commands to generate.