rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/2] Rust support for mm_struct, vm_area_struct, and mmap for miscdevice
@ 2024-10-10 12:56 Alice Ryhl
  2024-10-10 12:56 ` [PATCH v6 1/2] rust: mm: add abstractions for mm_struct and vm_area_struct Alice Ryhl
  2024-10-10 12:56 ` [PATCH v6 2/2] rust: miscdevice: add mmap support Alice Ryhl
  0 siblings, 2 replies; 13+ messages in thread
From: Alice Ryhl @ 2024-10-10 12:56 UTC (permalink / raw)
  To: Miguel Ojeda, Matthew Wilcox, Lorenzo Stoakes, Vlastimil Babka,
	John Hubbard, Liam R. Howlett, Andrew Morton, Greg Kroah-Hartman,
	Arnd Bergmann
  Cc: Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron,
	Benno Lossin, linux-kernel, linux-mm, rust-for-linux, Alice Ryhl,
	Andreas Hindborg, Wedson Almeida Filho

The first patch introduces mm_struct and vm_area_struct abstractions,
and the second patch uses them for miscdevice.

This updates the vm_area_struct support to use the approach we discussed
at LPC where there are three different types depending on the kind of
access you have to the vma. You either have read access, write access,
or you are initializing it. Each case allows a larger set of operations
on the vma.

This is based on top of char-misc-next for the base miscdevice
abstractions. That said, the first patch in the series also applies on
v6.12-rc2.

---
Changes in v6:
- Introduce VmArea{Ref,Mut,New} distinction.
- Add a second patchset for miscdevice.
- Rebase on char-misc-next (currently on v6.12-rc2).
- Link to v5: https://lore.kernel.org/r/20240806-vma-v5-1-04018f05de2b@google.com

Changes in v5:
- Rename VmArea::from_raw_vma to from_raw.
- Use Pin for mutable VmArea references.
- Go through `ARef::from` in `mmgrab_current`.
- Link to v4: https://lore.kernel.org/r/20240802-vma-v4-1-091a87058a43@google.com

Changes in v4:
- Pull out ARef::into_raw into a separate patch.
- Update invariants and struct documentation.
- Rename from_raw_mm to from_raw.
- Link to v3: https://lore.kernel.org/r/20240801-vma-v3-1-db6c1c0afda9@google.com

Changes in v3:
- Reorder entries in mm.rs.
- Use ARef for mmput_async helper.
- Clarify that VmArea requires you to hold the mmap read or write lock.
- Link to v2: https://lore.kernel.org/r/20240727-vma-v2-1-ab3e5927dc3a@google.com

Changes in v2:
- mm.rs is redesigned from scratch making use of AsRef
- Add notes about whether destructors may sleep
- Rename Area to VmArea
- Link to v1: https://lore.kernel.org/r/20240723-vma-v1-1-32ad5a0118ee@google.com

---
Alice Ryhl (2):
      rust: mm: add abstractions for mm_struct and vm_area_struct
      rust: miscdevice: add mmap support

 rust/helpers/helpers.c    |   1 +
 rust/helpers/mm.c         |  55 ++++++++
 rust/kernel/lib.rs        |   1 +
 rust/kernel/miscdevice.rs |  24 ++++
 rust/kernel/mm.rs         | 344 ++++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/mm/virt.rs    | 264 +++++++++++++++++++++++++++++++++++
 6 files changed, 689 insertions(+)
---
base-commit: f893691e742688ae21ad597c5bba13bef54706cd
change-id: 20240723-vma-f80119f9fb35

Best regards,
-- 
Alice Ryhl <aliceryhl@google.com>


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2024-11-12 18:07 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-10 12:56 [PATCH v6 0/2] Rust support for mm_struct, vm_area_struct, and mmap for miscdevice Alice Ryhl
2024-10-10 12:56 ` [PATCH v6 1/2] rust: mm: add abstractions for mm_struct and vm_area_struct Alice Ryhl
2024-10-13  0:16   ` Boqun Feng
2024-10-14  9:33     ` Alice Ryhl
2024-11-08 19:01   ` Jann Horn
2024-11-08 20:05     ` Jann Horn
2024-11-11 11:41     ` Alice Ryhl
2024-11-11 16:50       ` Jann Horn
2024-11-12 12:12         ` Alice Ryhl
2024-11-12 12:58           ` Jann Horn
2024-11-12 13:48             ` Alice Ryhl
2024-11-12 18:06               ` Jann Horn
2024-10-10 12:56 ` [PATCH v6 2/2] rust: miscdevice: add mmap support Alice Ryhl

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).