On Sat, Nov 02, 2019 at 08:40:40AM +1100, Dave Chinner wrote: > On Fri, Nov 01, 2019 at 08:04:26AM -0400, Brian Foster wrote: > > On Fri, Nov 01, 2019 at 10:45:52AM +1100, Dave Chinner wrote: > > > From: Dave Chinner <dchinner@xxxxxxxxxx> > > > > > > In certain situations the background CIL push can be indefinitely > > > delayed. While we have workarounds from the obvious cases now, it > > > doesn't solve the underlying issue. This issue is that there is no > > > upper limit on the CIL where we will either force or wait for > > > a background push to start, hence allowing the CIL to grow without > > > bound until it consumes all log space. > > > > > > To fix this, add a new wait queue to the CIL which allows background > > > pushes to wait for the CIL context to be switched out. This happens > > > when the push starts, so it will allow us to block incoming > > > transaction commit completion until the push has started. This will > > > only affect processes that are running modifications, and only when > > > the CIL threshold has been significantly overrun. > > > > > > This has no apparent impact on performance, and doesn't even trigger > > > until over 45 million inodes had been created in a 16-way fsmark > > > test on a 2GB log. That was limiting at 64MB of log space used, so > > > the active CIL size is only about 3% of the total log in that case. > > > The concurrent removal of those files did not trigger the background > > > sleep at all. > > > > > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> > > > Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> > > > --- > > > > I don't recall posting an R-b tag for this one... > > Argh, sorry. I must have screwed up transcribing them from the > mailing list. > > > That said, I think my only outstanding feedback (side discussion aside) > > was the code factoring in xlog_cil_push_background(). > > I'll go back and look at that, 'cause clearly I was looking at the > wrong patch when I screwed up the rvb tag... I'll keep an eye on the list for a revised series. --D > Cheers, > > Dave. > -- > Dave Chinner > david@xxxxxxxxxxxxx