Re: [PATCH v3 4/4] rust: add abstraction for `struct page`

From: Andreas Hindborg
Date: Fri Mar 15 2024 - 04:16:53 EST


Alice Ryhl <aliceryhl@xxxxxxxxxx> writes:

> Alice Ryhl <aliceryhl@xxxxxxxxxx> writes:
>
> Andreas Hindborg: I recall you mentioning that you also needed an
> abstraction for pages. To what extent do these abstractions fit your
> needs? Which gfp flags do you need?
>

I based the block device driver API and null block driver series on v1
of this patch and v3 should still be good for that. The null block
driver uses `Page` indirectly through `UniqueFolio` with `GFP_KERNEL`
alloc flags. I do not need to customize the flags outside of that.

As an aside, I added methods to safely operate on the page contents [1].
`kernel::block::vec::Segment` indirectly uses this to move data to and
from pages [2].

Best regards,
Andreas


[1] https://github.com/metaspace/linux/commit/e88f4dc928233fcedcb0afec40be9bc2f8f74e3b
[2] https://lore.kernel.org/rust-for-linux/87y1akso83.fsf@xxxxxxxxxxxx/T/#me6497ec69544efd21908f1acc6b3a1ab8b148ba0