Re: [PATCH 1/2] mm: introduce put_user_page*(), placeholder versions

From: Dave Hansen
Date: Fri Dec 14 2018 - 14:53:34 EST


On 12/14/18 11:48 AM, Matthew Wilcox wrote:
> I think we can do better than a proxy object with bit 0 set. I'd go
> for allocating something like this:
>
> struct dynamic_page {
> struct page;
> unsigned long vaddr;
> unsigned long pfn;
> ...
> };
>
> and use a bit in struct page to indicate that this is a dynamic page.

That might be fun. We'd just need a fast/static and slow/dynamic path
in page_to_pfn()/pfn_to_page(). We'd also need some kind of auxiliary
pfn-to-page structure since we could not fit that^ structure in vmemmap[].