On Wed, Dec 02, 2020 at 06:38:12AM -0800, Andy Lutomirski wrote: > > > On Dec 2, 2020, at 6:20 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > > On Sun, Nov 29, 2020 at 02:01:39AM +1000, Nicholas Piggin wrote: > >> + * - A delayed freeing and RCU-like quiescing sequence based on > >> + * mm switching to avoid IPIs completely. > > > > That one's interesting too. so basically you want to count switch_mm() > > invocations on each CPU. Then, periodically snapshot the counter on each > > CPU, and when they've all changed, increment a global counter. > > > > Then, you snapshot the global counter and wait for it to increment > > (twice I think, the first increment might already be in progress). > > > > The only question here is what should drive this machinery.. the tick > > probably. > > > > This shouldn't be too hard to do I think. > > > > Something a little like so perhaps? > > I don’t think this will work. A CPU can go idle with lazy mm and nohz > forever. This could lead to unbounded memory use on a lightly loaded > system. Hurm.. quite so indeed. Fixing that seems to end up with requiring that other proposal, such that we can tell which CPU has what active_mm stuck. Also, more complicated... :/