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

From: Alice Ryhl
Date: Tue Feb 27 2024 - 10:57:15 EST


On Tue, Feb 27, 2024 at 4:37 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> On Thu, Feb 08, 2024 at 03:47:54PM +0000, Alice Ryhl wrote:
> > +impl Page {
> > + /// Allocates a new page.
> > + pub fn new() -> Result<Self, AllocError> {
> > + // SAFETY: These are the correct arguments to allocate a single page.
> > + let page = unsafe {
> > + bindings::alloc_pages(
> > + bindings::GFP_KERNEL | bindings::__GFP_ZERO | bindings::__GFP_HIGHMEM,
>
> I thought I raised this last time, but this is over-specialised for
> Binder's purposes. Many places that want to allocate a page want
> different GFP flags from this; they shouldn't even be the default flags.
> So either what you're defining here is a BinderPage, or new() needs
> to take GFP flags.

Ah, yeah, sorry. I never got around to figuring that out.

I can change it to take GFP flags.

Thank you for taking another look!
Alice