Test fix: 0.6 branch does not have tls-compat.h
[userspace-rcu.git] / ChangeLog
1 2013-01-09 Userspace RCU 0.6.9
2 * API cleanup: use "uatomic_*" in cmm_smp_mb__ API
3 * uatomic: add memory barrier API for and/or/add/sub/inc/sub
4 * Fix uatomic sign cast
5 * Discourage use of pthread_atfork() for call_rcu handlers
6 * Fix call_rcu fork handling
7 * test: fork handling
8
9 2012-09-11 Userspace RCU 0.6.8
10 * Fix: call_rcu list corruption on teardown
11
12 2011-12-12 Userspace RCU 0.6.7
13 * Add compat file for test urcu wfs
14 * Add missing compat file for wfq test
15 * hlist.h: Add missing stddef.h include for NULL
16 * call_rcu: Add missing call_rcu_before_fork and
17 call_rcu_after_fork_parent declarations
18 * Describe autotools/libtool/automake version dependency
19 * Remove m4_ifdef for AC_PROG_LIBTOOL (deprecated)
20 * Support older autotools
21 * Apply autoupdate to configure.ac
22 * Fix build for amd64 environment (for FreeBSD 8.2)
23 * Add missing rcu_dereference_sym_bp
24 * Install test scripts in the dist tarball
25
26 2011-11-03 Userspace RCU 0.6.6
27 * qsbr vs call_rcu : remove exit assertion
28 * Rename likely/unlikely to caa_likely/caa_unlikely
29 * Reinsert missing test_urcu_*.c files (missing in rename)
30 * rename test_qsbr to test_urcu_qsbr
31 * urcu-pointer: fix rcu_set_pointer unset return value
32 * Enhance API.txt documentation, add to Makefile as EXTRA_DIST
33
34 2011-09-29 Userspace RCU 0.6.5
35 * call_rcu: Document call_rcu requirements
36 * call_rcu: fix error handling of malloc error
37 * urcu call_rcu: Use RCU read-side protection for per-cpu call_rcu data
38 * urcu,call_rcu: Cleanup call_rcu_data pointers before use in child
39 * urcu,call_rcu: avoid create call_rcu_data for child when unneed
40 * urcu,defer_rcu: Make defer_rcu encoding more compact for marker
41 * urcu_defer: Use cancellation flag instead of pthread_cancel()
42 * urcu,call_rcu: protects call_rcu_data_list when remove node
43 * Create default call rcu data upon per-cpu call-rcu teardown
44 * powerpc: use __NO_LWSYNC__ check to use appropriate lwsync/sync opcode
45 * cmm: provide lightweight smp_rmb/smp_wmb on PPC
46 * atomic: provide seq_cst semantics on powerpc
47 * avoid leaking crdp for failed path
48 * Return -EEXIST when the old cpu call_rcu_data has not been removed
49 * protect writing to per_cpu_call_rcu_data[*]
50 * wake up default call_rcu thread after we move the leftover callbacks
51 * avoid memory leak in call_rcu_data_free()
52 * urcu call_rcu: fix use after free()
53 * use get_cpu_call_rcu_data() for get_call_rcu_data()
54 * init maxcpus before use
55 * call_rcu implementation: add missing static
56 * Document QSBR interaction with mutexes
57 * urcu-pointer: implement URCU_FORCE_CAST for C++ compatibility of urcu-pointer.h
58 * urcu-qsbr: use rcu_thread_offline/rcu_thread_online instead of inlining them
59 * Pair all_cpu call_rcu create with free
60 * QSBR: add missing wakeups in synchronize_rcu code
61 * cmm: do not generate code for smp_rmb/smp_wmb on x86_64
62 * cmm: let per-arch files provide cmm_smp_* barriers
63 * Optimize caa_get_cycles() for PowerPC64
64 * lfq/lfs tests: use call_rcu
65 * list: Add cds_list_first_entry
66 * rculfstack/queue: define _LGPL_SOURCE around static header include
67 * Add __rcu annotation (unimplemented)
68 * Fix incorrect fsf address in header files
69 * wfstack: push returns prior stack emptiness state
70 * Make lf stack push return if the stack was empty
71 * Document caa_container_of
72 * urcu-bp: do not call munmap for NULL registry at exit
73 * urcu libraries can directly use the _LGPL_SOURCE wfqueue
74 * rculfstack: document "push"
75 * Add runall.sh to tarball
76 * Fix build order of liburcu-cds-common
77 * Fix missing check for SYS_membarrier in map header
78 * urcu-qsbr: avoid useless futex wakeups and burning CPU for long grace periods
79 * api: reimplement BUILD_BUG_ON in compiler.h
80 * test api cleanup: remove unused primitives
81 * put thread offline while waiting for the init flag
82 * urcu: move private definitions to .c file
83 * urcu-bp: move private definitions to .c file
84 * urcu-qsbr: move private definitions to .c file
85 * rcutorture: fix rcutorture-qsbr
86 * wfqueue: fix type-incorrect assignment
87 * Fix tests Makefile EXTRA_DIST to use api.h
88 * Fix choice of default flavour in urcu/map/urcu.h
89 * api: remove list/hlist
90 * api: remove arch-specific files
91 * api: make api_gcc.h a superset of the other headers
92 * tests api: remove atomics
93 * put thread offline while waiting for the init flag
94 * urcu: move private definitions to .c file
95 * urcu-bp: move private definitions to .c file
96 * urcu-qsbr: move private definitions to .c file
97 * rcutorture: fix rcutorture-qsbr
98 * wfqueue: fix type-incorrect assignment
99 * Use caa_ prefix for min() and max()
100
101 2011-07-21 Userspace RCU 0.6.4
102 * uatomic: Fix ARM build errors in uatomic.
103 * urcu tests: hold mutex across use of custom allocator.
104 * Portability fixes to support FreeBSD 8.2.
105
106 2011-06-27 Userspace RCU 0.6.3
107 * uatomic: Fix i386 compatibility build errors in uatomic.
108
109 2011-06-13 Userspace RCU 0.6.2
110 * Fix build on powerpc.
111
112 2011-06-13 Userspace RCU 0.6.1
113 * Add missing headers into release tarball:
114 urcu-call-rcu-impl.h and urcu-defer-impl.h
115
116 2011-06-10 Userspace RCU 0.6.0
117 * Added call_rcu() support, graciously contributed by Paul E. McKenney.
118 * Added urcu/cds.h and merged all "Concurrent Data Containers" (CDS)
119 into a single .so: liburcu-cds.so to have a single header/shared
120 object holding all concurrency-aware data containers. It provides
121 support for RCU lists, queues and stacks at the moment.
122 * liburcu 0.6.0 now allows linking a single application with multiple
123 flavors of RCU. This required a library API change which is
124 incompatible with older 0.5.x liburcu. The .so version number
125 is therefore bumped from 0 to 1 (e.g. liburcu.so.1).
126 * Added "atfork" handling API, documented in README. Only useful for
127 processes using fork() without following exec().
128 * Renaming the following files, keeping the old files (producing a
129 compiler warning):
130 urcu/uatomic_arch.h -> urcu/uatomic.h
131 urcu/urcu-futex.h -> urcu/futex.h
132 urcu/urcu_ref.h -> urcu/ref.h
133
134 2011-03-04 Userspace RCU 0.5.4
135 * urcu-bp: Update fork() handling
136
137 Introduce
138
139 extern void rcu_bp_before_fork(void);
140 extern void rcu_bp_after_fork_parent(void);
141 extern void rcu_bp_after_fork_child(void);
142
143 to handle fork gracefully. These disable signals and hold
144 the registry mutex across forks. (this flavor of the liburcu
145 library ("bp" for "bulletproof") is mainly used by UST, the
146 user-space tracer).
147
148 2011-03-03 Userspace RCU 0.5.3
149 * Add support for older ARM single-CPU architecturess (pre-ARMv7)
150 (thanks to Jason Wessel from WindRiver).
151 * Fix ARMv7 cmm_rmb/cmm_wmb primitives (use a dmb barrier).
152 * Remove leftover list_t type from urcu/list.h (namespace cleanup).
153 * urcu_defer: handle malloc error value.
154 * Update README file to describe urcu interaction with fork() when not
155 * followed
156 by an exec() system call.
157
158 2010-11-18 Userspace RCU 0.5.2
159 * Fix renaming error introduced in 0.5.0.
160
161 2010-11-18 Userspace RCU 0.5.1
162 * Fix renaming error introduced in 0.5.0. (incomplete fix)
163
164 2010-11-18 Userspace RCU 0.5.0
165 * Version 0.5.0 changes the API presented by memory model,
166 architecture abstraction and data structure primitives in
167 headers. The prefixes are, respectively:
168 - cmm_ : Concurrent Memory Model
169 - caa_ : Concurrent Architecture Abstraction
170 - cds_ : Concurrent Data Structures
171
172 2010-03-04 Userspace RCU 0.4.2
173 * Add generic uatomic ops support.
174 * Bugfix in urcu-bp. (rare garbage collection bug occurring in
175 multithreaded environment). Only affects urcu-bp users (UST).
176
177 2010-02-12 Userspace RCU 0.4.1
178 * s390: compilation fix.
179
180 2010-01-30 Userspace RCU 0.4.0
181 * API change: SIGURCU -> SIGRCU
182 * API changes: standardize on rcu_ prefix.
183 * API change: urcu_init -> rcu_init.
184 * urcu/config.h options renamed to CONFIG_RCU_HAVE_FENCE,
185 CONFIG_RCU_HAVE_FUTEX, CONFIG_RCU_SMP, CONFIG_RCU_COMPAT_ARCH.
186 ((moving from URCU -> RCU).
187 * library names changes: liburcu becomes the "default" version, using
188 sys_membarrier() when available, and using liburcu-mb as a
189 fallback.
190 * The signal-based liburcu is renamed from liburcu to
191 liburcu-signal. People previously using the signal-based
192 "liburcu" will automatically be moved to the "default" liburcu
193 version.
194
195 2009-11-16 Userspace RCU 0.3.1
196 * Add support for sparcv9 32-bit build.
197 * Update build system to use --host instead of --target.
198
199 2009-11-03 Userspace RCU 0.3.0
200 * API change for the "deferred work" interface.
201
202 2009-10-14 Userspace RCU 0.2.3
203 * Move to autotools.
204 * Automated architecture detection, with i386 fallback.
205 * Detect if NR_futex is on the system, fallback on portable
206 alternatives.
207 * Add configure mode for UP-only systems.
208
209 2009-10-02 Userspace RCU 0.2.2
210 * Phases out rcu_publish_content() api.
211 * Adds type checking to urcu-pointer.h pointer exchange primitives.
212
213 2009-10-02 Userspace RCU 0.2.1
214 * small header dependency fix for rculist.h.
215 * new "liburcu-bp.so" : "Bulletproof RCU", made especially for
216 the UST userspace tracer. It's a library that sacrifices a bit
217 of read-side performance for automatically monitoring thread
218 creation/removal. See README for details.
219
220 2009-10-01 Userspace RCU 0.2
221 * Clarify usage of rcu_cmpxchg_pointer, rcu_xchg_pointer,
222 rcu_set_pointer.
223
224 2009-09-29 Userspace RCU 0.1
225 * Initial release.
This page took 0.032585 seconds and 4 git commands to generate.