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

From: Igor Stoppa
Date: Mon Feb 12 2018 - 11:24:47 EST




On 11/02/18 23:16, Matthew Wilcox wrote:
> 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.

I thought the tradeoff favorable. How to verify it?

> 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.

pmalloced too?

--
igor