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