All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Onur Özkan" <work@onurozkan.dev>
To: "Onur Özkan" <work@onurozkan.dev>
Cc: rcu@vger.kernel.org, rust-for-linux@vger.kernel.org,
	linux-kernel@vger.kernel.org, ojeda@kernel.org, boqun@kernel.org,
	gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org,
	a.hindborg@kernel.org, aliceryhl@google.com, tmgross@umich.edu,
	dakr@kernel.org, peterz@infradead.org, fujita.tomonori@gmail.com,
	tamird@kernel.org, jiangshanlai@gmail.com, paulmck@kernel.org,
	josh@joshtriplett.org, rostedt@goodmis.org,
	mathieu.desnoyers@efficios.com
Subject: Re: [PATCH v10 0/5] rust: add SRCU abstraction
Date: Thu,  2 Jul 2026 16:53:34 +0300	[thread overview]
Message-ID: <20260702135345.44303-1-work@onurozkan.dev> (raw)
In-Reply-To: <20260613065348.96750-1-work@onurozkan.dev>

On Sat, 13 Jun 2026 09:40:06 +0300
Onur Özkan <work@onurozkan.dev> wrote:

> The immediate motivation is the Tyr reset infrastructure [1] which needs
> to serialize reset sensitive hardware access against reset and teardown
> paths. That reset series started to require many independent dependencies
> so this SRCU support is split out as a standalone Rust API to keep the
> reset series focused on the reset logic and easier to review, rebase and
> land.
> 
> 
> Changes since v9:
> 
> - SRCU initialization restructuring is now a separate patch (the first
>   one in this series).
> - Comment fix on C initialization functions.
> 
> 
> Changes since v8:
> 
> - Refactor srcu init handling to provide better init API (motivated by
>   the "mutex.h" initializers.
> - Use warn_on! instead of pr_warn! on leaked guard detection.
> 
> 
> Changes since v7:
> 
> - Moved synchronize_srcu() call inside "if srcu_readers_active()"
>   condition in "impl PinnedDrop for Srcu".
> - Improved comments on the synchronize_srcu() call in
>   "impl PinnedDrop for Srcu".
> 
> 
> Changes since v6:
> 
> - Removed "CONFIG_DEBUG_LOCK_ALLOC" condition from "rust/helpers/srcu.c"
>   and created a simple wrapper inside "include/linux/srcu.h" for it.
> 
> 
> Changes since v5:
> 
> - Created separate srcu_readers_active() variants for "srcutiny.h" and
>   "srcutree.h".
> 
> 
> Changes since v4:
> 
> - Exposed srcu_readers_active from C side and wired it to the Rust
>   helpers.
> - Used srcu_readers_active() in SRCU drop and logged with pr_warn if
>   there are leaked guards during the drop.
> 
> 
> Changes since v3 (which are for Sashiko notes [2]):
> 
> - Added rust helpers for srcu_barrier() and synchronize_srcu_expedited()
>   so the abstraction builds with CONFIG_TINY_SRCU, where these are
>   static inline functions.
> - Added missing INVARIANT comment in Srcu::new() about why the type
>   invariants hold after successful initialization.
> 
> 
> Changes since v2:
> 
> - Removed closure-based API.
> - Added #[doc(hidden)] on new_srcu macro.
> - Added #[must_use..] on srcu::Guard.
> - Improved the clean-up path (PinnedDrop implementation) which
>   eventually made read_lock safe with leaked guards.
> 
> 
> Changes since v1:
> 
> - Made the owned SRCU read-side guard API unsafe and added a safe closure
>   based helper for callers that do not need to keep the guard. This is to
>   avoid UB on the C side cleanup_srcu_struct where the SRCU struct is freed
>   while there are still active guards, which can happen if the caller leaks
>   the guard e.g., with mem::forget().
> - Improved doc comments.
> 
> 
> v1: https://lore.kernel.org/all/20260428103437.156236-1-work@onurozkan.dev
> v2: https://lore.kernel.org/all/20260502162833.34334-1-work@onurozkan.dev
> v3: https://lore.kernel.org/all/20260522054228.114814-1-work@onurozkan.dev
> v4: https://lore.kernel.org/all/20260525175706.124910-1-work@onurozkan.dev
> v5: https://lore.kernel.org/all/20260527174120.510447-1-work@onurozkan.dev
> v6: https://lore.kernel.org/all/20260527203615.163688-1-work@onurozkan.dev
> v7: https://lore.kernel.org/all/20260528062810.256212-1-work@onurozkan.dev
> v8: https://lore.kernel.org/all/20260529114449.112066-1-work@onurozkan.dev
> v9: https://lore.kernel.org/all/20260529134004.396743-1-work@onurozkan.dev
> 
> [1]: https://lore.kernel.org/all/20260416171728.205141-1-work@onurozkan.dev
> [2]: https://sashiko.dev/#/patchset/20260522054228.114814-1-work@onurozkan.dev?part=2
> 
> Onur Özkan (5):
>   srcu: make init_srcu_struct() consistently wrap __init_srcu_struct()
>   rust: helpers: add SRCU helpers
>   srcu: expose srcu_readers_active()
>   rust: sync: add SRCU abstraction
>   MAINTAINERS: add Rust SRCU files to SRCU entry
> 
>  MAINTAINERS              |   3 +
>  include/linux/srcu.h     |  29 ++++---
>  include/linux/srcutiny.h |  13 +++
>  include/linux/srcutree.h |  24 ++++++
>  kernel/rcu/srcutiny.c    |  14 ++--
>  kernel/rcu/srcutree.c    |  36 ++-------
>  rust/helpers/helpers.c   |   1 +
>  rust/helpers/srcu.c      |  35 ++++++++
>  rust/kernel/sync.rs      |   2 +
>  rust/kernel/sync/srcu.rs | 171 +++++++++++++++++++++++++++++++++++++++
>  10 files changed, 282 insertions(+), 46 deletions(-)
>  create mode 100644 rust/helpers/srcu.c
>  create mode 100644 rust/kernel/sync/srcu.rs
> 
> -- 
> 2.51.2
> 

A gentle ping on this series. Are there any remaining concerns with v10?

Regards,
Onur

  parent reply	other threads:[~2026-07-02 13:54 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-13  6:40 [PATCH v10 0/5] rust: add SRCU abstraction Onur Özkan
2026-06-13  6:40 ` [PATCH v10 1/5] srcu: make init_srcu_struct() consistently wrap __init_srcu_struct() Onur Özkan
2026-07-10 13:38   ` Gary Guo
2026-06-13  6:40 ` [PATCH v10 2/5] rust: helpers: add SRCU helpers Onur Özkan
2026-07-10 13:39   ` Gary Guo
2026-06-13  6:40 ` [PATCH v10 3/5] srcu: expose srcu_readers_active() Onur Özkan
2026-06-13  6:40 ` [PATCH v10 4/5] rust: sync: add SRCU abstraction Onur Özkan
2026-07-06 11:55   ` Alice Ryhl
2026-07-06 12:39     ` Gary Guo
2026-07-06 13:01       ` Onur Özkan
2026-07-10 13:42   ` Gary Guo
2026-06-13  6:40 ` [PATCH v10 5/5] MAINTAINERS: add Rust SRCU files to SRCU entry Onur Özkan
2026-07-02 13:53 ` Onur Özkan [this message]
2026-07-10 12:38 ` [PATCH v10 0/5] rust: add SRCU abstraction Alice Ryhl
2026-07-10 14:18 ` Boqun Feng
2026-07-10 18:07   ` Paul E. McKenney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260702135345.44303-1-work@onurozkan.dev \
    --to=work@onurozkan.dev \
    --cc=a.hindborg@kernel.org \
    --cc=aliceryhl@google.com \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun@kernel.org \
    --cc=dakr@kernel.org \
    --cc=fujita.tomonori@gmail.com \
    --cc=gary@garyguo.net \
    --cc=jiangshanlai@gmail.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lossin@kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=ojeda@kernel.org \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=tamird@kernel.org \
    --cc=tmgross@umich.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.