Re: objrmap and vmtruncate

Martin J. Bligh
2003-04-05T02:13:52Z

> Perhaps it is useful to itemise the prblems which we're trying to solve here:
>
> - ZONE_NORMAL consumption by pte_chains
>
> Solved by objrmap and presumably page clustering.
>
> - ZONE_NORMAL consumption by VMAs
>
> Solved by remap_file_pages. Neither objrmap nor page clustering will
> help here.

I'm not convinced that we can't do something with nonlinear mappings for
this ... we just need to keep a list of linear areas within the nonlinear
vmas, and use that to do the objrmap stuff with. Dave and I talked about
this yesterday ... we both had different terminology, but I think the
same underlying fundamental concept ... I was calling them "sub-vmas"
for each linear region within the nonlinear space.

The fundamental problem I came to (and I think Dave had the same problem)
is that I couldn't see what problem remap_file_pages was trying to solve,
so it was tricky to see if we'd cause the same thing or not. sub-vmas
could certainly be a lot smaller, but we weren't thinking of 128K of the
damned things, so ... the other thing is of course the setup and teardown
time ... but the could be a btree or something for the structure.

Of course, if we did this, it would get rid of the whole conversion
to and from object based stuff ;-) I think Dave had some other bright
idea on this too, but I don't recall what it was ;-(

> - pte_chain setup and teardown CPU cost.
>
> objrmap does not seem to help. Page clustering might, but is unlikely to
> be enabled on the machines which actually care about the overhead.

eh? Not sure what you mean by that. It helped massively ...
diffprofile from kernbench showed:

-4666 -74.9% page_add_rmap
-10666 -92.0% page_remove_rmap

I'd say that about an 85% reduction in cost is pretty damned fine ;-)
And that was about a 20% overall reduction in the system time for the
test too ... that was all for partial objrmap (file backed, not anon).

M.