On Sat, Feb 12, 2022 at 05:28:09PM +0900, Tetsuo Handa wrote: > On 2022/01/04 22:26, Tetsuo Handa wrote: > > On 2022/01/04 16:14, Christoph Hellwig wrote: > >> On Mon, Jan 03, 2022 at 07:49:11PM +0900, Tetsuo Handa wrote: > >>> syzbot is reporting hung task at blkdev_fallocate() [1], for it can take > >>> minutes with mapping->invalidate_lock held. Since fallocate() has to accept > >>> size > MAX_RW_COUNT bytes, we can't predict how long it will take. Thus, > >>> mitigate this problem by using killable wait where possible. > >> > >> Well, but that also means we want all other users of the invalidate_lock > >> to be killable, as fallocate vs fallocate synchronization is probably > >> not the interesting case. > > > > Right. But being responsive to SIGKILL is generally preferable. > > > > syzbot (and other syzkaller based fuzzing) is reporting many hung task reports, > > but many of such reports are simply overstressing. > > > > We can't use killable lock wait for release operation because it is a "void" > > function. But we can use killable lock wait for majority of operations which > > are not "void" functions. Use of killable lock wait where possible can improve > > situation. > > > > If there is no alternative, can we apply this patch? As mentioned before I do not think this patch makes sense. If running fallocate on the block device under the invalidate lock creates a problem with long hold time we must get it out from under the lock, not turn one random caller into a killable lock acquisition.