lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 4 Apr 2022 14:12:14 +0900
From:   Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>
To:     Christoph Hellwig <hch@...radead.org>
Cc:     syzbot <syzbot+4f1a237abaf14719db49@...kaller.appspotmail.com>,
        axboe@...nel.dk, linux-block@...r.kernel.org,
        linux-kernel@...r.kernel.org, syzkaller-bugs@...glegroups.com,
        Jan Kara <jack@...e.cz>
Subject: Re: [syzbot] INFO: task can't die in blkdev_common_ioctl

On 2022/04/04 13:58, Christoph Hellwig wrote:
> On Sat, Apr 02, 2022 at 08:26:23PM +0900, Tetsuo Handa wrote:
>>> git tree:       linux-next
>>> console output: https://syzkaller.appspot.com/x/log.txt?x=168d578db00000
>>> kernel config:  https://syzkaller.appspot.com/x/.config?x=be9183de0824e4d7
>>> dashboard link: https://syzkaller.appspot.com/bug?extid=4f1a237abaf14719db49
>>> compiler:       gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
>>>
>>> Unfortunately, I don't have any reproducer for this issue yet.
>>
>> This is a known problem, and Christoph does not like a mitigation patch.
>> https://lkml.kernel.org/r/YgoQBTzb3b0l1SzP@infradead.org
> 
> And this report shows why: your patch makes the lock acquisition in
> blkdev_fallocate killable.  Which would not help with this problem at
> all, as it does not come through blkdev_fallocate.

My patch proposes filemap_invalidate_lock_killable() and converts only
blkdev_fallocate() case as a starting point. Nothing prevents us from
converting e.g. blk_ioctl_zeroout() case as well. The "not come through
blkdev_fallocate" is bogus.

>                                                     The problem is that
> the loop writing actual zeroes to the disk can take forever, and we
> hold the invalidate_lock over that.

There can be several locations which cannot be converted to
filemap_invalidate_lock_killable() (like we had to use mutex_lock(&lo->lo_mutex)
for lo_release() case). But many locations can be converted to
filemap_invalidate_lock_killable() (like we use mutex_lock_killable(&lo->lo_mutex)
for almost all locations).

Being responsive to SIGKILL is good (even if we cannot afford making all locks
killable). I made many locations killable. Therefore, I wonder why not?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ