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