]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: bound maximum wait time for inodegc work
authorDave Chinner <dchinner@redhat.com>
Thu, 16 Jun 2022 14:44:31 +0000 (07:44 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 23 Jun 2022 20:34:38 +0000 (13:34 -0700)
commit4518b14a6570649bbbff9b266a21bda2557fab3c
treee585ad4129cd1e0ece2dca566e4bd33a82c7e17b
parent4cd4ad47ad1ffefa66a3c200b143335c25412a0a
xfs: bound maximum wait time for inodegc work

Currently inodegc work can sit queued on the per-cpu queue until
the workqueue is either flushed of the queue reaches a depth that
triggers work queuing (and later throttling). This means that we
could queue work that waits for a long time for some other event to
trigger flushing.

Hence instead of just queueing work at a specific depth, use a
delayed work that queues the work at a bound time. We can still
schedule the work immediately at a given depth, but we no long need
to worry about leaving a number of items on the list that won't get
processed until external events prevail.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
fs/xfs/xfs_icache.c
fs/xfs/xfs_mount.h
fs/xfs/xfs_super.c