On Wed, 2021-06-30 at 17:10 +0100, Mark Brown wrote:
On Wed, Jun 16, 2021 at 11:23:34AM -0400, Tejun Heo wrote:
On Wed, Jun 16, 2021 at 08:51:57AM -0400, Paul Gortmaker wrote:
A fix would be to not leave the stale reference in fc->root as follows:
-------------- dput(fc->root); + fc->root = NULL; deactivate_locked_super(sb); --------------
...but then we are just open-coding a duplicate of fc_drop_locked() so we simply use that instead.
As this is unlikely to be a real-world problem both in probability and circumstances, I'm applying this to cgroup/for-5.14 instead of cgroup/for-5.13-fixes.
FWIW at Arm we've started seeing what appears to be this issue blow up very frequently in some of our internal LTP CI runs against -next, seems to be mostly on lower end platforms. We seem to have started finding it at roughly the same time that the Yocto people did, I guess some other change made it more likely to trigger. Not exactly real world usage obviously but it's creating quite a bit of noise in testing which is disruptive so it'd be good to get it into -next as a fix.
It is a horrible bug to debug as you end up with "random" failures on the systems which are hard to pin down. Along with the RCU stall hangs it was all a bit of a nightmare.
Out of interest are you also seeing the proc01 test hang on a non-blocking read of /proc/kmsg periodically?
https://bugzilla.yoctoproject.org/show_bug.cgi?id=14460
I've not figured out a way to reproduce it at will yet and it seems strace was enough to unblock it. It seems arm specific.
Cheers,
Richard