Commit | Line | Data |
---|---|---|
7d43e04f MD |
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 | ||
3c5a11c5 MD |
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 | ||
b2f20dff MD |
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 | ||
da9bed25 MD |
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 | ||
3ff667f1 MD |
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 | ||
ae51baf2 MD |
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 | ||
3227f2cc MD |
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 | ||
8afbdefc MD |
76 | 2012-05-24 Userspace RCU 0.7.2 |
77 | * Fix library compatibility | |
78 | ||
9128481d MD |
79 | 2012-05-24 Userspace RCU 0.7.1 |
80 | * fix: uatomic_set return value compile fix for non-x86 arch. | |
81 | ||
edf0b358 MD |
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 | ||
c2f15ecd MD |
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 | ||
530aab93 MD |
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 | ||
49472b9b MD |
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 | ||
5d80fb65 MD |
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 | ||
aa120cd0 MD |
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. |