On Thu, Apr 06, 2023 at 03:11:52PM +0100, Valentin Schneider wrote: > On 06/04/23 15:38, Peter Zijlstra wrote: > > On Wed, Apr 05, 2023 at 01:45:02PM +0100, Valentin Schneider wrote: > >> > >> I've been hacking on something like this (CSD deferral for NOHZ-full), > >> and unfortunately this uses the CPU-local cfd_data storage thing, which > >> means any further smp_call_function() from the same CPU to the same > >> destination will spin on csd_lock_wait(), waiting for the target CPU to > >> come out of userspace and flush the queue - and we've just spent extra > >> effort into *not* disturbing it, so that'll take a while :( > > > > I'm not sure I buy into deferring stuff.. a NOHZ_FULL cpu might 'never' > > come back. Queueing data just in case it does seems wasteful. > > Putting those callbacks straight into the bin would make my life much > easier! Well, it's either they get inhibited at the source like the parent patch does, or they go through. I really don't see a sane middle way here. > Unfortunately, even if they really should, I don't believe all of the > things being crammed onto NOHZ_FULL CPUs have the same definition of > 'never' as we do :/ That's not entirely the point, the point is that there are proper NOHZ_FULL users that won't return to the kernel until the machine shuts down. Buffering stuff for them is more or less a direct memory leak.