From: "Onur Özkan" <work@onurozkan.dev>
To: rust-for-linux@vger.kernel.org
Cc: lossin@kernel.org, lyude@redhat.com, ojeda@kernel.org,
alex.gaynor@gmail.com, boqun.feng@gmail.com, gary@garyguo.net,
a.hindborg@kernel.org, aliceryhl@google.com, tmgross@umich.edu,
dakr@kernel.org, peterz@infradead.org, mingo@redhat.com,
will@kernel.org, longman@redhat.com, felipe_life@live.com,
daniel@sedlak.dev, daniel.almeida@collabora.com,
thomas.hellstrom@linux.intel.com, linux-kernel@vger.kernel.org,
"Onur Özkan" <work@onurozkan.dev>
Subject: [PATCH v10 0/7] rust: add ww_mutex support
Date: Sat, 3 Jan 2026 10:35:47 +0300 [thread overview]
Message-ID: <20260103073554.34855-1-work@onurozkan.dev> (raw)
Changes in v10:
- Added missing reviewed-by tags.
- Fixed git conflict resolution leftovers [1].
[1]: https://lore.kernel.org/all/202601030632.SukxzGNs-lkp@intel.com/
Changes in v9:
- Added `__rust_helper` prefixes to `ww_mutex.c`.
- Reworked on Class to remove pinned initialization functions
and added documentation suggesting its use as a global variable
as this is its only usage on the C side.
- Added myself as a maintainer of WW Mutex.
- Various minor updates (commit description updates, minor code
rearrangements, etc.).
Changes in v8:
- Various minor updates (e.g., doc updates, removing unnecessary
lifetime annotations, etc.).
- Changed C implementation to always provide ww_class field in
ww_mutex and ww_acquire_ctx types so we can access it from Rust
easily.
- Locking functions are now safe to call.
- Added class validation logic to ww_mutex::lock_common.
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 (7):
rust: add C wrappers for ww_mutex inline functions
ww_mutex: add ww_class field unconditionally
rust: error: add EDEADLK
rust: implement Class for ww_class support
rust: ww_mutex: add Mutex, AcquireCtx and MutexGuard
rust: ww_mutex: implement LockSet
MAINTAINERS: add Onur Özkan as WW MUTEX maintainer
MAINTAINERS | 2 +
include/linux/ww_mutex.h | 8 +-
rust/helpers/helpers.c | 1 +
rust/helpers/ww_mutex.c | 45 ++
rust/kernel/error.rs | 1 +
rust/kernel/sync/lock.rs | 1 +
rust/kernel/sync/lock/ww_mutex.rs | 444 ++++++++++++++++++
rust/kernel/sync/lock/ww_mutex/acquire_ctx.rs | 172 +++++++
rust/kernel/sync/lock/ww_mutex/class.rs | 139 ++++++
rust/kernel/sync/lock/ww_mutex/lock_set.rs | 370 +++++++++++++++
10 files changed, 1177 insertions(+), 6 deletions(-)
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
--
2.51.2
next reply other threads:[~2026-01-03 7:36 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-03 7:35 Onur Özkan [this message]
2026-01-03 7:35 ` [PATCH v10 1/7] rust: add C wrappers for ww_mutex inline functions Onur Özkan
2026-02-03 13:45 ` Daniel Almeida
2026-02-03 15:02 ` Onur Özkan
2026-01-03 7:35 ` [PATCH v10 2/7] ww_mutex: add ww_class field unconditionally Onur Özkan
2026-01-03 7:35 ` [PATCH v10 3/7] rust: error: add EDEADLK Onur Özkan
2026-01-03 7:35 ` [PATCH v10 4/7] rust: implement Class for ww_class support Onur Özkan
2026-01-03 7:35 ` [PATCH v10 5/7] rust: ww_mutex: add Mutex, AcquireCtx and MutexGuard Onur Özkan
2026-01-03 7:35 ` [PATCH v10 6/7] rust: ww_mutex: implement LockSet Onur Özkan
2026-01-03 14:28 ` kernel test robot
2026-01-03 7:35 ` [PATCH v10 7/7] MAINTAINERS: add Onur Özkan as WW MUTEX maintainer Onur Özkan
2026-07-10 12:52 ` [PATCH v10 0/7] rust: add ww_mutex support Alice Ryhl
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=20260103073554.34855-1-work@onurozkan.dev \
--to=work@onurozkan.dev \
--cc=a.hindborg@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@kernel.org \
--cc=daniel.almeida@collabora.com \
--cc=daniel@sedlak.dev \
--cc=felipe_life@live.com \
--cc=gary@garyguo.net \
--cc=linux-kernel@vger.kernel.org \
--cc=longman@redhat.com \
--cc=lossin@kernel.org \
--cc=lyude@redhat.com \
--cc=mingo@redhat.com \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=thomas.hellstrom@linux.intel.com \
--cc=tmgross@umich.edu \
--cc=will@kernel.org \
/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.