From: "Danilo Krummrich" <dakr@kernel.org>
To: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: "Gary Guo" <gary@garyguo.net>,
"Alice Ryhl" <aliceryhl@google.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Lorenzo Stoakes" <lorenzo.stoakes@oracle.com>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Andrew Ballance" <andrewjballance@gmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>,
linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org,
rust-for-linux@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 2/3] rust: maple_tree: add MapleTree::lock() and load()
Date: Thu, 07 Aug 2025 20:30:15 +0200 [thread overview]
Message-ID: <DBWEQWVWLJWA.2JHS152T8YSO1@kernel.org> (raw)
In-Reply-To: <imzcbuqlhj3dhzxyk7t44pt3ufxckwlonuqpsdohxuztvk3sss@z4douqoxmxqw>
On Thu Aug 7, 2025 at 6:15 PM CEST, Liam R. Howlett wrote:
> * Gary Guo <gary@garyguo.net> [250727 08:03]:
>> On Sat, 26 Jul 2025 18:18:02 +0200
>> Well, `Lock::from_raw` is designed to interact with a C-side lock:
>>
>> > Construct a Lock from a raw pointer
>> >
>> > This can be useful for interacting with a lock which was initialised outside of Rust.
>>
>
> If it matters for future build out, the tree supports an external lock
> that may not be a spinlock. This is currently used by the mm for the
> vma management, and others (although willy wants it to go away
> eventually).
When I was considering maple tree for GPUVM, i.e. vma management for GPUs, I
would have needed the external lock as well. For GPU VMA management we have
section for which we have to ensure that the tree won't be altered for a
sequence of sleeping operations.
In the worst case we could have used the internal spinlock and yet have an
external mutex for this purpose; an uncontended spinlock shouldn't be that big
a deal to take. So, long story short, I think there may be a few cases where an
external lock can make sense.
Just to recap why GPUVM couldn't leverage maple tree: we have cases where we
have to pre-allocate multiple entries for the tree, whose ranges are yet unknown
at the time we need to pre-allocate them. Unfortunately, I can't think of a
solution for this given that in this situation we can't predict the number of
new nodes this requires.
If however in the meantime there have been ideas to tackle this please let me
know, I'd still love to have maple tree for GPUVM.
- Danilo
next prev parent reply other threads:[~2025-08-07 18:30 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-26 13:23 [PATCH 0/3] Add Rust abstraction for Maple Trees Alice Ryhl
2025-07-26 13:23 ` [PATCH 1/3] rust: maple_tree: add MapleTree Alice Ryhl
2025-07-26 15:45 ` Gary Guo
2025-08-19 9:09 ` Alice Ryhl
2025-07-26 16:23 ` Matthew Wilcox
2025-07-26 16:41 ` Alice Ryhl
2025-07-28 16:04 ` Boqun Feng
2025-07-28 16:39 ` Danilo Krummrich
2025-08-07 16:12 ` Liam R. Howlett
2025-08-08 8:37 ` Alice Ryhl
2025-07-26 13:23 ` [PATCH 2/3] rust: maple_tree: add MapleTree::lock() and load() Alice Ryhl
2025-07-26 15:50 ` Gary Guo
2025-07-26 16:15 ` Alice Ryhl
2025-07-26 16:18 ` Alice Ryhl
2025-07-27 12:02 ` Gary Guo
2025-08-07 16:15 ` Liam R. Howlett
2025-08-07 18:30 ` Danilo Krummrich [this message]
2025-07-28 11:11 ` Andrew Ballance
2025-07-28 11:19 ` Alice Ryhl
2025-07-28 11:52 ` Danilo Krummrich
2025-07-28 15:19 ` Boqun Feng
2025-07-26 13:23 ` [PATCH 3/3] rust: maple_tree: add MapleTreeAlloc Alice Ryhl
2025-07-26 15:54 ` Gary Guo
2025-07-26 16:13 ` Alice Ryhl
2025-08-07 16:29 ` Liam R. Howlett
2025-08-08 8:35 ` Alice Ryhl
2025-08-06 19:24 ` [PATCH 0/3] Add Rust abstraction for Maple Trees Liam R. Howlett
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=DBWEQWVWLJWA.2JHS152T8YSO1@kernel.org \
--to=dakr@kernel.org \
--cc=Liam.Howlett@oracle.com \
--cc=a.hindborg@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=aliceryhl@google.com \
--cc=andrewjballance@gmail.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=gary@garyguo.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=lossin@kernel.org \
--cc=maple-tree@lists.infradead.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).