From: Johannes Weiner <hannes@cmpxchg.org>
To: syzbot <syzbot+efb9e48b9fbdc49bb34a@syzkaller.appspotmail.com>
Cc: akpm@linux-foundation.org, amir73il@gmail.com,
darrick.wong@oracle.com, hughd@google.com, jack@suse.cz,
jglisse@redhat.com, josef@toxicpanda.com,
kirill.shutemov@linux.intel.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, sfr@canb.auug.org.au, songliubraving@fb.com,
syzkaller-bugs@googlegroups.com, william.kucharski@oracle.com,
willy@infradead.org
Subject: Re: INFO: task hung in mpage_prepare_extent_to_map
Date: Mon, 28 Oct 2019 16:14:44 -0400 [thread overview]
Message-ID: <20191028201444.GA27425@cmpxchg.org> (raw)
In-Reply-To: <000000000000c50fd70595fdd5b2@google.com>
On Mon, Oct 28, 2019 at 12:52:09PM -0700, syzbot wrote:
> Hello,
>
> syzbot found the following crash on:
>
> HEAD commit: 12d61c69 Add linux-next specific files for 20191024
> git tree: linux-next
> console output: https://syzkaller.appspot.com/x/log.txt?x=15a0fa97600000
> kernel config: https://syzkaller.appspot.com/x/.config?x=afb75fd8c9fd5ed8
> dashboard link: https://syzkaller.appspot.com/bug?extid=efb9e48b9fbdc49bb34a
> compiler: gcc (GCC) 9.0.0 20181231 (experimental)
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=13a63dc4e00000
>
> The bug was bisected to:
>
> commit 9c61acffe2b8833152041f7b6a02d1d0a17fd378
> Author: Song Liu <songliubraving@fb.com>
> Date: Wed Oct 23 00:24:28 2019 +0000
>
> mm,thp: recheck each page before collapsing file THP
>
> bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=13eb6ec0e00000
> final crash: https://syzkaller.appspot.com/x/report.txt?x=101b6ec0e00000
> console output: https://syzkaller.appspot.com/x/log.txt?x=17eb6ec0e00000
>
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+efb9e48b9fbdc49bb34a@syzkaller.appspotmail.com
> Fixes: 9c61acffe2b8 ("mm,thp: recheck each page before collapsing file THP")
>
> INFO: task khugepaged:1084 blocked for more than 143 seconds.
> Not tainted 5.4.0-rc4-next-20191024 #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> khugepaged D27568 1084 2 0x80004000
> Call Trace:
> context_switch kernel/sched/core.c:3384 [inline]
> __schedule+0x94a/0x1e70 kernel/sched/core.c:4069
> schedule+0xd9/0x260 kernel/sched/core.c:4136
> io_schedule+0x1c/0x70 kernel/sched/core.c:5780
> wait_on_page_bit_common mm/filemap.c:1175 [inline]
> __lock_page+0x422/0xab0 mm/filemap.c:1383
> lock_page include/linux/pagemap.h:480 [inline]
> mpage_prepare_extent_to_map+0xb3f/0xf90 fs/ext4/inode.c:2668
> ext4_writepages+0xb6a/0x2e70 fs/ext4/inode.c:2866
> ? 0xffffffff81000000
> do_writepages+0xfa/0x2a0 mm/page-writeback.c:2344
> __filemap_fdatawrite_range+0x2bc/0x3b0 mm/filemap.c:421
> __filemap_fdatawrite mm/filemap.c:429 [inline]
> filemap_flush+0x24/0x30 mm/filemap.c:456
This is a double locking deadlock. The page lock is already held when
we call into filemap_flush() here, and does another lock_page() in
write_cache_pages().
To fix it, we have to either initiate flushing before acquiring the
page lock, or simply skip over dirty pages.
Maybe doing vfs_fsync_range() from the madvise(HUGEPAGE) call isn't a
bad idea after all? (I had discussed this with Song off-list before.)
next prev parent reply other threads:[~2019-10-28 20:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-28 19:52 syzbot
2019-10-28 20:14 ` Johannes Weiner [this message]
2019-10-28 22:15 ` Song Liu
2019-11-04 8:04 ` Dmitry Vyukov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191028201444.GA27425@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=akpm@linux-foundation.org \
--cc=amir73il@gmail.com \
--cc=darrick.wong@oracle.com \
--cc=hughd@google.com \
--cc=jack@suse.cz \
--cc=jglisse@redhat.com \
--cc=josef@toxicpanda.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=sfr@canb.auug.org.au \
--cc=songliubraving@fb.com \
--cc=syzbot+efb9e48b9fbdc49bb34a@syzkaller.appspotmail.com \
--cc=syzkaller-bugs@googlegroups.com \
--cc=william.kucharski@oracle.com \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox