[PATCH v18 0/3] rust: xarray: Add a minimal abstraction for XArray

Tamir Duberstein posted 3 patches 9 months, 3 weeks ago
There is a newer version of this series
MAINTAINERS                     |  11 ++
rust/bindings/bindings_helper.h |   6 +
rust/helpers/helpers.c          |   1 +
rust/helpers/xarray.c           |  28 ++++
rust/kernel/alloc/kbox.rs       |  38 +++---
rust/kernel/lib.rs              |   1 +
rust/kernel/miscdevice.rs       |  10 +-
rust/kernel/pci.rs              |   2 +-
rust/kernel/platform.rs         |   2 +-
rust/kernel/sync/arc.rs         |  21 +--
rust/kernel/types.rs            |  46 ++++---
rust/kernel/xarray.rs           | 277 ++++++++++++++++++++++++++++++++++++++++
12 files changed, 394 insertions(+), 49 deletions(-)
[PATCH v18 0/3] rust: xarray: Add a minimal abstraction for XArray
Posted by Tamir Duberstein 9 months, 3 weeks ago
This is a reimagining relative to earlier versions[0] by Asahi Lina and
Maíra Canal.

It is needed to support rust-binder, though this version only provides
enough machinery to support rnull.

Link: https://lore.kernel.org/rust-for-linux/20240309235927.168915-2-mcanal@igalia.com/ [0]
---
Changes in v18:
- Add INVARIANT comment in `XArray::new`. (Danilo Krummrich)
- Replace destructuring with field access in
  `impl<T> From<StoreError<T>> for Error`. (Danilo Krummrich)
- Use enumerations in SAFETY comments (3x). (Danilo Krummrich)
- Link to v17: https://lore.kernel.org/r/20250218-rust-xarray-bindings-v17-0-f3a99196e538@gmail.com

Changes in v17:
- Drop patch "rust: remove redundant `as _` casts". (Danilo Krummrich)
- Drop trailers for shared commit from configfs series[0]. (Danilo
  Krummrich)
- Avoid shadowing expressions with .cast() calls. (Danilo Krummrich)
- Link to v16: https://lore.kernel.org/r/20250207-rust-xarray-bindings-v16-0-256b0cf936bd@gmail.com

Changes in v16:
- Extract prequel patch for `as _` casts. (Danilo Krummrich)
- Improve doc and safety comments. (Boqun Feng)
- Pull trailers for shared commit from configfs series[0]. (Andreas Hindborg, Alice Ryhl, Fiona Behrens)
- Link to configfs series: https://lore.kernel.org/rust-for-linux/20250131-configfs-v1-1-87947611401c@kernel.org/
- Link to v15: https://lore.kernel.org/r/20250206-rust-xarray-bindings-v15-0-a22b5dcacab3@gmail.com

Changes in v15:
- Rebase on v6.14-rc1.
- Add MAINTAINERS entry.
- Link to v14: https://lore.kernel.org/r/20241217-rust-xarray-bindings-v14-0-9fef3cefcb41@gmail.com

Changes in v14:
- Remove TODO made stale by Gary Guo's FFI type series.
- Link: https://lore.kernel.org/all/20240913213041.395655-5-gary@garyguo.net/
- Link to v13: https://lore.kernel.org/r/20241213-rust-xarray-bindings-v13-0-8655164e624f@gmail.com

Changes in v13:
- Replace `bool::then` with `if`. (Miguel Ojeda)
- Replace `match` with `let` + `if`. (Miguel Ojeda)
- Link to v12: https://lore.kernel.org/r/20241212-rust-xarray-bindings-v12-0-59ab9b1f4d2e@gmail.com

Changes in v12:
- Import `core::ptr::NonNull`. (Alice Ryhl)
- Introduce `StoreError` to allow `?` to be used with `Guard::store`.
  (Alice Ryhl)
- Replace `{crate,core}::ffi::c_ulong` and clarify TODO with respect to
  `usize`. (Alice Ryhl)
- Drop `T: Sync` bound on `impl Sync for XArray<T>`. (Alice Ryhl)
- Reword `Send` and `Sync` safety comments to match the style used in
  `lock.rs`. (Alice Ryhl and Andreas
  Hindborg)
- Link to v11: https://lore.kernel.org/r/20241203-rust-xarray-bindings-v11-0-58a95d137ec2@gmail.com

Changes in v11:
- Consolidate imports. (Alice Ryhl)
- Use literal `0` rather than `MIN`. (Alice Ryhl)
- Use bulleted list in SAFETY comment. (Alice Ryhl)
- Document (un)locking behavior of `Guard::store`. (Alice Ryhl)
- Document Normal API behavior WRT `XA_ZERO_ENTRY`. (Alice Ryhl)
- Rewrite `unsafe impl Sync` SAFETY comment. (Andreas Hindborg)
- Link to v10: https://lore.kernel.org/r/20241120-rust-xarray-bindings-v10-0-a25b2b0bf582@gmail.com

Changes in v10:
- Guard::get takes &self instead of &mut self. (Andreas Hindborg)
- Guard is !Send. (Boqun Feng)
- Add Inspired-by tags. (Maíra Canal and Asahi Lina)
- Rebase on linux-next, use NotThreadSafe. (Alice Ryhl)
- Link to v9: https://lore.kernel.org/r/20241118-rust-xarray-bindings-v9-0-3219cdb53685@gmail.com

---
Tamir Duberstein (3):
      rust: types: add `ForeignOwnable::PointedTo`
      rust: xarray: Add an abstraction for XArray
      MAINTAINERS: add entry for Rust XArray API

 MAINTAINERS                     |  11 ++
 rust/bindings/bindings_helper.h |   6 +
 rust/helpers/helpers.c          |   1 +
 rust/helpers/xarray.c           |  28 ++++
 rust/kernel/alloc/kbox.rs       |  38 +++---
 rust/kernel/lib.rs              |   1 +
 rust/kernel/miscdevice.rs       |  10 +-
 rust/kernel/pci.rs              |   2 +-
 rust/kernel/platform.rs         |   2 +-
 rust/kernel/sync/arc.rs         |  21 +--
 rust/kernel/types.rs            |  46 ++++---
 rust/kernel/xarray.rs           | 277 ++++++++++++++++++++++++++++++++++++++++
 12 files changed, 394 insertions(+), 49 deletions(-)
---
base-commit: 11668f3b4a446222f0f3fe89b21247c176928c72
change-id: 20241020-rust-xarray-bindings-bef514142968

Best regards,
-- 
Tamir Duberstein <tamird@gmail.com>

Re: [PATCH v18 0/3] rust: xarray: Add a minimal abstraction for XArray
Posted by Andreas Hindborg 7 months, 3 weeks ago
Hi Tamir,

"Tamir Duberstein" <tamird@gmail.com> writes:

> This is a reimagining relative to earlier versions[0] by Asahi Lina and
> Maíra Canal.
>
> It is needed to support rust-binder, though this version only provides
> enough machinery to support rnull.
>
> Link: https://lore.kernel.org/rust-for-linux/20240309235927.168915-2-mcanal@igalia.com/ [0]

Can you respin these so they apply on v6.15-rc2? I hope to stage them
for v6.16 merge window.


Best regards,
Andreas Hindborg
Re: [PATCH v18 0/3] rust: xarray: Add a minimal abstraction for XArray
Posted by Miguel Ojeda 9 months, 2 weeks ago
On Fri, Feb 21, 2025 at 9:27 PM Tamir Duberstein <tamird@gmail.com> wrote:
>
> This is a reimagining relative to earlier versions[0] by Asahi Lina and
> Maíra Canal.
>
> It is needed to support rust-binder, though this version only provides
> enough machinery to support rnull.

Willy: any objection from us taking this through the Rust tree, or do
you want to take it through yours?

If we don't hear anything, we will try to get this into 6.16, i.e. not
for this merge window but for the next.

Thanks!

Cheers,
Miguel
Re: [PATCH v18 0/3] rust: xarray: Add a minimal abstraction for XArray
Posted by Jens Axboe 9 months, 3 weeks ago
Please have (at least) a 24h cool down between versions, spamming
versions within hours of the last one is not productive for (or
conducive to) review.

-- 
Jens Axboe