On Fri, Oct 25, 2024 at 09:08:24PM +0200, David Hildenbrand wrote:
We already discussed in the past that we need a better and more efficient way to walk page tables. I have part of that on my TODO list, but I'm getting distracted.
Yes I remember an LSF session on this, it's a really obvious area of improvement that stands out at the moment for sure.
Having worked several 12+ hour days in a row though recently I can relate to workload making this difficult though :)
Yes :)
*Inserting* (not walking/modifying existing things as most users to) as done in this patch is slightly different though, likely "on thing that fits all" will not apply to all page table walker user cases.
Yeah, there's also replace scenarios which then have to do egregious amounts of work to make sure we do everything right, in fact there's duplicates of this in mm/madvise.c *grumble grumble*.
-- Cheers,
David / dhildenb
OK so I guess I'll hold off my TODOs on this as you are looking in this area and I trust you :)
It will probably take me a while until I get to it, though. I'd focus on walking (and batching what we can) first, then on top modifying existing entries.
Yeah entirely understandable and that's the right order I think, the modifying path is the trickier one especially with all the special cases all over the place...
The "install something where there is nothing yet" (incl. populating fresh page tables etc.) case probably deserves a separate "walker".
Yes this would avoid all the heavy handling a replace handler needs.
If you end up having spare cycles and want to sync on a possible design for some part of that bigger task -- removing the old pagewalk logic -- please do reach out! :)
Thanks, I may have a play when I have a brief moment, as I feel quite strongly we need to attack this (as do you I feel! :) will send some RFC or some thoughts or whatever should I do so!
-- Cheers,
David / dhildenb
Cheers!