• Darrick J. Wong's avatar
    xfs: revert AIL TASK_KILLABLE threshold · 04d6dbb5
    Darrick J. Wong authored
    In commit 9adf4024, 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: 9adf4024 ("xfs: AIL doesn't need manual pushing")
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
    04d6dbb5
xfs_trans_ail.c 25.8 KB