(this series is based on Alice's RFC [1] and discussion around Philipp's patches [2], [3])
As an easy way to provide RCU-protected allocation, two major types are provided: - `RcuBox<T, A>`, inner T will be dropped and after a grace period. Users: binder with maple_tree and dma_fence. - `RcuFreeBox<T, A>`, inner T will be cleaned up immmediately and freed after a grace period. (Name suggestion is welcome). This is an attempt to consolidate Alice's `PollCondVarBox` [4] into a generic implementation, InPlaceInit support is still missing, but I want to get some feedback on the trait `RcuFreeSafe`. [1]: https://lore.kernel.org/rust-for-linux/[email protected]/ [2]: https://lore.kernel.org/rust-for-linux/[email protected]/ [3]: https://lore.kernel.org/rust-for-linux/[email protected]/ [4]: https://lore.kernel.org/rust-for-linux/[email protected]/ Regards, Boqun Alice Ryhl (2): rust: rcu: Add RcuBox type rust: maple_tree: Add load_rcu() Boqun Feng (1): rust: rcu: Introduce RcuFreeBox rust/bindings/bindings_helper.h | 1 + rust/kernel/maple_tree.rs | 52 ++++++ rust/kernel/sync/rcu.rs | 65 ++++++- rust/kernel/sync/rcu/rcu_box.rs | 290 ++++++++++++++++++++++++++++++++ 4 files changed, 407 insertions(+), 1 deletion(-) create mode 100644 rust/kernel/sync/rcu/rcu_box.rs -- 2.51.0

