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