Re: [PATCH] btrfs: prevent hung check firing during long sync IO

From: David Sterba
Date: Wed Aug 19 2020 - 09:29:46 EST


On Wed, Aug 19, 2020 at 06:14:51PM +0800, Xianting Tian wrote:
> For sync and flush io, it may take long time to complete.
> So it's better to use wait_for_completion_io_timeout() in a
> while loop to avoid prevent hung check and crash(when set
> /proc/sys/kernel/hung_task_panic).

I wonder if long running IO should trigger the panic/kill of the task at
all. A warning means that the system is under load but as long as it's
making some progress it should be ok, and that seems to be a separate
case from a task that's not making any progress (and terminating it is
probably the best option).

> This is similar to prevent hung task check in submit_bio_wait(),
> blk_execute_rq().

I see, adding that workaround to btrfs would be 3rd occurence and this
should go into a wrapper, eg. wait_for_completion_io_nowarn with
examples where this should be used.