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!