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