Re: [PATCH v12 1/8] mm: rust: add abstraction for struct mm_struct

From: Andreas Hindborg
Date: Mon Jan 20 2025 - 08:59:15 EST


"Alice Ryhl" <aliceryhl@xxxxxxxxxx> writes:

> These abstractions allow you to reference a `struct mm_struct` using
> both mmgrab and mmget refcounts. This is done using two Rust types:
>
> * Mm - represents an mm_struct where you don't know anything about the
> value of mm_users.
> * MmWithUser - represents an mm_struct where you know at compile time
> that mm_users is non-zero.
>
> This allows us to encode in the type system whether a method requires
> that mm_users is non-zero or not. For instance, you can always call
> `mmget_not_zero` but you can only call `mmap_read_lock` when mm_users is
> non-zero.
>
> The struct is called Mm to keep consistency with the C side.
>
> The ability to obtain `current->mm` is added later in this series.
>
> Acked-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx> (for mm bits)
> Signed-off-by: Alice Ryhl <aliceryhl@xxxxxxxxxx>


Reviewed-by: Andreas Hindborg <a.hindborg@xxxxxxxxxx>


Best regards,
Andreas Hindborg