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