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