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