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