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