[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251110082814.428ead91@nimda.home>
Date: Mon, 10 Nov 2025 08:28:14 +0300
From: Onur Özkan <work@...rozkan.dev>
To: rust-for-linux@...r.kernel.org
Cc: lossin@...nel.org, lyude@...hat.com, ojeda@...nel.org,
alex.gaynor@...il.com, boqun.feng@...il.com, gary@...yguo.net,
a.hindborg@...nel.org, aliceryhl@...gle.com, tmgross@...ch.edu,
dakr@...nel.org, peterz@...radead.org, mingo@...hat.com, will@...nel.org,
longman@...hat.com, felipe_life@...e.com, daniel@...lak.dev,
bjorn3_gh@...tonmail.com, daniel.almeida@...labora.com,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v7 0/6] rust: add `ww_mutex` support
On Sat, 1 Nov 2025 19:10:50 +0300
Onur Özkan <work@...rozkan.dev> wrote:
> Changes in v7:
> - Split Class and AcquireCtx into separate modules.
> - Removed "Ww" prefixes from type names.
> - Renamed exec.rs -> lock_set.rs and ExecContext -> LockSet.
> - Removed transmute logic from LockSet (formerly ExecContext).
> - Improved various doc-comments.
> - Marked certain AcquireCtx functions as unsafe.
> - Added from_raw constructors for Mutex, MutexGuard, AcquireCtx
> and Class.
> - LockSet::cleanup_on_deadlock no longer triggers reallocations when
> reinitializing AcquireCtx.
> - Incorporated various minor improvements suggested on the v6
> series.
>
> Changes in v6:
> - Added `unpinned_new` constructor for `WwClass` and updated
> global macros.
> - Changed all tests (and docs) to use Arc/KBox instead of
> `stack_pin_init` for `WwMutex` and `WwAcquireCtx`.
> - Added `LockKind` and `lock_common` helper to unify locking logic.
> - Added context-based and context-free locking functions for
> `WwMutex`.
> - Added `ww_mutex/exec` module, a high-level API with auto `EDEADLK`
> handling mechanism.
>
> Changes in v5:
> - Addressed documentation review notes.
> - Removed `unwrap()`s in examples and KUnit tests.
>
> Onur Özkan (6):
> rust: add C wrappers for ww_mutex inline functions
> rust: implement `Class` for ww_class support
> rust: error: add EDEADLK
> rust: ww_mutex: add Mutex, AcquireCtx and MutexGuard
> rust: ww_mutex: implement LockSet
> rust: add test coverage for ww_mutex implementation
>
> MAINTAINERS | 1 +
> rust/helpers/helpers.c | 1 +
> rust/helpers/ww_mutex.c | 39 ++
> rust/kernel/error.rs | 1 +
> rust/kernel/sync/lock.rs | 1 +
> rust/kernel/sync/lock/ww_mutex.rs | 440
> ++++++++++++++++++ rust/kernel/sync/lock/ww_mutex/acquire_ctx.rs |
> 211 +++++++++ rust/kernel/sync/lock/ww_mutex/class.rs | 156
> +++++++ rust/kernel/sync/lock/ww_mutex/lock_set.rs | 410
> ++++++++++++++++ 9 files changed, 1260 insertions(+)
> create mode 100644 rust/helpers/ww_mutex.c
> create mode 100644 rust/kernel/sync/lock/ww_mutex.rs
> create mode 100644 rust/kernel/sync/lock/ww_mutex/acquire_ctx.rs
> create mode 100644 rust/kernel/sync/lock/ww_mutex/class.rs
> create mode 100644 rust/kernel/sync/lock/ww_mutex/lock_set.rs
>
I forgot to include the Zulip discussion link [1], which I believe
would be quite useful. I am adding this as a self-review note to make
sure I include it in the next version.
[1]:
https://rust-for-linux.zulipchat.com/#narrow/stream/x/topic/x/near/547854930
Regards,
Onur
Powered by blists - more mailing lists