Re: [PATCH 3/6] struct page: add field for vm_struct

From: Matthew Wilcox
Date: Sun Feb 11 2018 - 16:18:15 EST


On Sun, Feb 11, 2018 at 05:19:17AM +0200, Igor Stoppa wrote:
> The struct page has a "mapping" field, which can be re-used, to store a
> pointer to the parent area. This will avoid more expensive searches.
>
> As example, the function find_vm_area is reimplemented, to take advantage
> of the newly introduced field.

Umm. Is it more efficient? You're replacing an rb-tree search with a
page-table walk. You eliminate a spinlock, which is great, but is the
page-table walk more efficient? I suppose it'll depend on the depth of
the rb-tree, and (at least on x86), the page tables should already be
in cache.

Unrelated to this patch, I'm working on a patch to give us page_type,
and I think I'll allocate a bit to mark pages which are vmalloced.