* [RELEASE] Userspace RCU 0.14.3 and 0.15.7
@ 2026-09-11 14:48 Mathieu Desnoyers via lttng-dev
0 siblings, 0 replies; only message in thread
From: Mathieu Desnoyers via lttng-dev @ 2026-09-11 14:48 UTC (permalink / raw)
To: linux-kernel, lttng-dev, rp
Cc: Paul E. McKenney <paulmck@kernel.org> Alan Stern
<stern@rowland.harvard.edu> Lai Jiangshan
Hi,
I hereby announce the 0.14.3 and 0.15.7 bugfix releases for the
currently maintained Userspace RCU stable branches.
liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This
data synchronization library provides read-side access which scales
linearly with the number of cores. It does so by allowing multiple
copies of a given data structure to live at the same time, and by
monitoring the data structure accesses to detect grace periods after
which memory reclamation is possible.
liburcu-cds provides efficient data structures based on RCU and
lock-free algorithms. Those structures include hash tables, queues,
stacks, and doubly-linked lists.
* Highlight
The most relevant fix in those releases is a fix for the memory
ordering of rcu_dereference() when used in code compiled without
_LGPL_SOURCE. The issue is that the load is non-volatile, non-atomic,
and lacks the relevant memory-order-consume semantic.
The fix is twofold:
1) A work-around in rcu_dereference_sym() which adds a cmm_smp_mb().
This fixes memory ordering but not load atomicity.
2) Introduction of a new rcu_dereference_sym2() which fixes both
atomicity and memory ordering. The macro now maps to this new
symbol. The old symbol is preserved for backward compatibility.
There is also a change to the call-rcu worker to make sure the CPU
affinity is set earlier in the worker thread lifetime, eliminating
unwanted call RCU worker thread migration behaviors early in the
process lifetime (first ~2.5 seconds).
Changelog:
2026-09-11 Userspace RCU 0.15.7
* call-rcu worker: set CPU affinity on first non-empty dequeue
* Fix: leaky wfcq tests
* Fix: test_build.c: Test output mismatch
* Fix: workqueue leaks mutexes on FreeBSD
* Fix: call-rcu leaks mutexes on FreeBSD
* call_rcu: pin per-CPU worker at thread startup
* urcu-pointer: Add rcu_dereference_sym2() taking the pointer address
* urcu-pointer: Fix missing memory ordering in rcu_dereference_sym()
2026-09-11 Userspace RCU 0.14.3
* call-rcu worker: set CPU affinity on first non-empty dequeue
* Fix: leaky wfcq tests
* Fix: test_build.c: Test output mismatch
* Fix: workqueue leaks mutexes on FreeBSD
* Fix: call-rcu leaks mutexes on FreeBSD
* call_rcu: pin per-CPU worker at thread startup
* urcu-pointer: Add rcu_dereference_sym2() taking the pointer address
* urcu-pointer: Fix missing memory ordering in rcu_dereference_sym()
Project website: https://liburcu.org
Git repository: https://git.liburcu.org/userspace-rcu.git
--
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-11 14:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-11 14:48 [RELEASE] Userspace RCU 0.14.3 and 0.15.7 Mathieu Desnoyers via lttng-dev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox