Re: kernel BUG at mm/vmscan.c:LINE! (2)

From: Michal Hocko
Date: Tue Aug 06 2019 - 04:29:18 EST


On Sat 03-08-19 05:06:43, Minchan Kim wrote:
> On Fri, Aug 02, 2019 at 10:58:05AM -0700, syzbot wrote:
> > Hello,
> >
> > syzbot found the following crash on:
> >
> > HEAD commit: 0d8b3265 Add linux-next specific files for 20190729
> > git tree: linux-next
> > console output: https://syzkaller.appspot.com/x/log.txt?x=1663c7d0600000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=ae96f3b8a7e885f7
> > dashboard link: https://syzkaller.appspot.com/bug?extid=8e6326965378936537c3
> > compiler: gcc (GCC) 9.0.0 20181231 (experimental)
> > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=133c437c600000
> > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=15645854600000
> >
> > The bug was bisected to:
> >
> > commit 06a833a1167e9cbb43a9a4317ec24585c6ec85cb
> > Author: Minchan Kim <minchan@xxxxxxxxxx>
> > Date: Sat Jul 27 05:12:38 2019 +0000
> >
> > mm: introduce MADV_PAGEOUT
> >
> > bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=1545f764600000
> > final crash: https://syzkaller.appspot.com/x/report.txt?x=1745f764600000
> > console output: https://syzkaller.appspot.com/x/log.txt?x=1345f764600000
> >
> > IMPORTANT: if you fix the bug, please add the following tag to the commit:
> > Reported-by: syzbot+8e6326965378936537c3@xxxxxxxxxxxxxxxxxxxxxxxxx
> > Fixes: 06a833a1167e ("mm: introduce MADV_PAGEOUT")
> >
> > raw: 01fffc0000090025 dead000000000100 dead000000000122 ffff88809c49f741
> > raw: 0000000000020000 0000000000000000 00000002ffffffff ffff88821b6eaac0
> > page dumped because: VM_BUG_ON_PAGE(PageActive(page))
> > page->mem_cgroup:ffff88821b6eaac0
> > ------------[ cut here ]------------
> > kernel BUG at mm/vmscan.c:1156!
> > invalid opcode: 0000 [#1] PREEMPT SMP KASAN
> > CPU: 1 PID: 9846 Comm: syz-executor110 Not tainted 5.3.0-rc2-next-20190729
> > #54
> > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> > Google 01/01/2011
> > RIP: 0010:shrink_page_list+0x2872/0x5430 mm/vmscan.c:1156
>
> My old version had PG_active flag clear but it seems to lose it with revising
> patchsets. Thanks, Sizbot!
>
> >From 66d64988619ef7e86b0002b2fc20fdf5b84ad49c Mon Sep 17 00:00:00 2001
> From: Minchan Kim <minchan@xxxxxxxxxx>
> Date: Sat, 3 Aug 2019 04:54:02 +0900
> Subject: [PATCH] mm: Clear PG_active on MADV_PAGEOUT
>
> shrink_page_list expects every pages as argument should be no active
> LRU pages so we need to clear PG_active.

Ups, missed that during review.

>
> Reported-by: syzbot+8e6326965378936537c3@xxxxxxxxxxxxxxxxxxxxxxxxx
> Fixes: 06a833a1167e ("mm: introduce MADV_PAGEOUT")

This is not a valid sha1 because it likely comes from linux-next. I
guess Andrew will squash it into mm-introduce-madv_pageout.patch

Just for the record
Acked-by: Michal Hocko <mhocko@xxxxxxxx>

And thanks for syzkaller to exercise the new interface so quickly!

> Signed-off-by: Minchan Kim <minchan@xxxxxxxxxx>
> ---
> mm/vmscan.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 47aa2158cfac2..e2a8d3f5bbe48 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -2181,6 +2181,7 @@ unsigned long reclaim_pages(struct list_head *page_list)
> }
>
> if (nid == page_to_nid(page)) {
> + ClearPageActive(page);
> list_move(&page->lru, &node_page_list);
> continue;
> }
> --
> 2.22.0.770.g0f2c4a37fd-goog

--
Michal Hocko
SUSE Labs