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.

