xfs: reduce the number of AIL push wakeups
authorDave Chinner <dchinner@redhat.com>
Fri, 17 Dec 2010 09:08:04 +0000 (20:08 +1100)
committerDave Chinner <david@fromorbit.com>
Fri, 17 Dec 2010 09:08:04 +0000 (20:08 +1100)
commite677d0f9548e2245ee3c2977661ca8ca165af188
tree28e20df79bcd8c5aa7458c85fd58cf7f5feb4e69
parent0e57f6a36f9be03e5abb755f524ee91c4aebe854
xfs: reduce the number of AIL push wakeups

The xfaild often tries to rest to wait for congestion to pass of for
IO to complete, but is regularly woken in tail-pushing situations.
In severe cases, the xfsaild is getting woken tens of thousands of
times a second. Reduce the number needless wakeups by only waking
the xfsaild if the new target is larger than the old one. Further
make short sleeps uninterruptible as they occur when the xfsaild has
decided it needs to back off to allow some IO to complete and being
woken early is counter-productive.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/linux-2.6/xfs_super.c