Hi, On Thu, 2024-09-12 at 21:02 +0200, Richard Weinberger wrote: > On Fri, Aug 30, 2024 at 5:38 PM Benjamin Berg > <benja...@sipsolutions.net> wrote: > > > > From: Benjamin Berg <benjamin.b...@intel.com> > > > > In time-travel mode userspace can do a lot of work without any time > > passing. Unfortunately, this can result in OOM situations as the > > RCU > > core code will never be run. > > > > Work around that by kicking the RCU using rcu_sched_clock_irq. So > > behave to the RCU code as if a clock tick happened every syscall. > > > > Signed-off-by: Benjamin Berg <benjamin.b...@intel.com> > > > > [SNIP] > > While I acknowledge that time-travel itself is a beautiful hack, I'd > like to keep the hacks > to keep it working minimal. > So, the problem here is that RCU callbacks never run and just pile up?
Yes. A simple example of this is doing a "find /". This will allocate a lot of inode information which is only free'ed at a later point. > I wonder why such a situation does not happen in a nohz_full setup on > regular systems. Had to search for a bit. But, I think the boot CPU will still have a tick even on a NOHZ_FULL setup. see the nohz_full= boot parameter. It does look like the RCU code might try to force scheduling (tiny RCU) or wake up a worker (tree RCU) in these situations. But neither of these attempts is going to fix the situation as there will be no call to rcu_sched_clock_irq with time-travel. Benjamin