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