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