On Wed, May 11, 2022 at 11:36:54AM +1000, Dave Chinner wrote:
I think that's the thing that some people have missed in in this thread - I've know for a while now the scope of problems blocking flushes from statfs() can cause - any issue with background inodegc not making progress can deadlock the filesystem. I've lost count of the number of times I had inodegc go wrong or crash and the only possible recovery was to power cycle because nothing could be executed from the command line. That's because statfs() appears to be used in some commonly used library function and so many utility programs on the system will get stuck and be unable to run when inodegc dies, deadlocks, or takes a real long time to make progress. Hence I didn't need to do any analysis of Chris' system to know exactly what was going on - I've seen it many, many times myself and have work in progress that avoids those issues with inodegc work that never completes. IOWs, everything is understood, fixes are already written, and there's no actual threat of data loss or corruption from this issue. It's just lots of stuff getting stuck behind a long running operation...
Your patches are stuck behind other long running priorities, or the patches address an issue of stuff getting stuck? Or, of course, both? ;-)
Out of interest, would this work also reduce the time spent mounting in my case? I.e. would a lot of the work from my recovery mount be punted off to a background thread?
Cheers, Chris