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