Re: [PATCHv5 02/12] mm: Add support for unaccepted memory

From: Kirill A. Shutemov
Date: Thu May 05 2022 - 20:53:30 EST


On Tue, May 03, 2022 at 10:21:03PM +0200, David Hildenbrand wrote:
>
> >
> > +/*
> > + * Page acceptance can be very slow. Do not call under critical locks.
> > + */
> > +static void accept_page(struct page *page, unsigned int order)
> > +{
> > + phys_addr_t start = page_to_phys(page);
> > + int i;
> > +
> > + accept_memory(start, start + (PAGE_SIZE << order));
> > +
> > + for (i = 0; i < (1 << order); i++) {
> > + if (PageUnaccepted(page + i))
> > + __ClearPageUnaccepted(page + i);
> > + }
> > +}
>
> What was the rationale of leaving PageUnaccepted() set on sub-pages when
> merging pages?
>
> I'd just clear the flag when merging and avoid the loop here. You could
> even assert here that we don't have any PageUnaccepted() on tail pages.

Okay, fair enough. I will change the code.

--
Kirill A. Shutemov