]> www.infradead.org Git - users/dwmw2/linux.git/commit
xfs: revert AIL TASK_KILLABLE threshold
authorDarrick J. Wong <djwong@kernel.org>
Sun, 4 Aug 2024 21:39:34 +0000 (14:39 -0700)
committerChandan Babu R <chandanbabu@kernel.org>
Wed, 14 Aug 2024 15:49:34 +0000 (21:19 +0530)
commit04d6dbb55301a29aeb9a197e6b0012cdc265f1e4
tree64c1a28c6ca042a7b1ce95a23ed0b6993b0d3ab4
parent73c34b0b85d46bf9c2c0b367aeaffa1e2481b136
xfs: revert AIL TASK_KILLABLE threshold

In commit 9adf40249e6c, we changed the behavior of the AIL thread to
set its own task state to KILLABLE whenever the timeout value is
nonzero.  Unfortunately, this missed the fact that xfsaild_push will
return 50ms (aka a longish sleep) when we reach the push target or the
AIL becomes empty, so xfsaild goes to sleep for a long period of time in
uninterruptible D state.

This results in artificially high load averages because KILLABLE
processes are UNINTERRUPTIBLE, which contributes to load average even
though the AIL is asleep waiting for someone to interrupt it.  It's not
blocked on IOs or anything, but people scrap ps for processes that look
like they're stuck in D state, so restore the previous threshold.

Fixes: 9adf40249e6c ("xfs: AIL doesn't need manual pushing")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
fs/xfs/xfs_trans_ail.c