We reproduced and debugged several hangs in a rhel6.3 kernel that
happened to still support xfsaild idle mode. Our short term fix was
to disable idle mode as in upstream, but I'd like to fire out a
couple potential fixes that allow us to re-enable idle mode, assuming
there aren't any other problems I'm not aware of. The details of the
bug are at:
... but I'll try to provide all relevant data in this post. The
reproducer is xfstests 273 running in a 100-iteration loop. I have
reproduced this hang on upstream kernels quite reliably with commit
670ce93f reverted. The performance enhancement in that commit makes
this much harder to reproduce.
With the proposed modifications, I've probably run 5+ 100-loop
iterations of test 273 without reproducing a hang. Previously, I
was able to reproduce the first hang with 100% reliability and the
second hang reproduced 10 minutes or so after starting a second
100-loop test (with the first fix applied).
I still have to run a full xfstests but the changes are small enough
that I wanted to send them out before I got too far. Thanks.
Changes since v1:
- Rebased against a pristine tree.
Brian Foster (3):
xfs: re-enable xfsaild idle mode
xfs: fix xfsaild hang due to premature idle
xfs: fix xfsaild hang due to lost wake ups
fs/xfs/xfs_trans_ail.c | 8 ++++----
fs/xfs/xfs_trans_priv.h | 1 +
2 files changed, 5 insertions(+), 4 deletions(-)