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