[PATCH 1/8 v2] xfs: log race fixes and cleanups

Dave Chinner
2019-09-05T08:47:26Z

Hi folks,

This is a followup to the original patchset here:

https://lore.kernel.org/linux-xfs/20190905072856.GE1119@dread.disaster.area/T/#m8ae6bdccbf4248b5d219ad40ab5caa92f9e0a979

It is aimed at solving the hangs occurring in generic/530 and
cleaning up the code around the iclog completion. This version is
largely just changes for review comments, though there is a new
patch (#3) to address what is probably the underlying cause of
all the issues.

Chandan has tested the new unbound workqueue change and it solved
the hang on his test machine, passes all the log group tests on my
test machines.

Cheers,

Dave.

Version 3:
- add patch to yeild the CPU in AGI unlinked list processing and to
allow the CIL push work to be done on any CPU so it doesn't get
stuck on a CPU that isn't being yeilded.
- Added comment to explain the AIL push added to an unsuccessful
wakeup in xlog_grant_head_wake()
- removed "did callbacks" parameter from
xlog_state_callback_check_state and cleaned up comments
- fixed detection of the icloglock being dropped during the iclog
state scan.
- fixed unintended logic change with iclogs in IOERROR state when
factoring out state processing
- other small whitespace and cleanup bits.