On Fri, Feb 26, 2021 at 10:42:00AM -0400, Jason Gunthorpe wrote: > On Thu, Feb 25, 2021 at 08:58:20PM +0000, Matthew Wilcox wrote: > > > I'd like to hear better ideas than this. > > You didn't like my suggestion to put a sleepable lock around the > freeing of page tables during flushing? > > I still don't see how you convert the sleepable page walkers to use > rcu?? I don't want to convert the sleepable ones to use RCU ... I want to convert the non-sleeping ones to use RCU. A page_table_free_lock might work, but it might have its own problems later (eg a sleeping lock can't be acquired under RCU or spinlock, and it can't be a spinlock because it'd have to be held while we wait for IPIs). I think it would solve my immediate problem, and I wonder if it might solve some other problems ...