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