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:   Sat, 3 Aug 2019 05:06:43 +0900
From:   Minchan Kim <minchan@...nel.org>
To:     syzbot <syzbot+8e6326965378936537c3@...kaller.appspotmail.com>
Cc:     akpm@...ux-foundation.org, chris@...isdown.name, chris@...kel.net,
        dancol@...gle.com, dave.hansen@...el.com, hannes@...xchg.org,
        hdanton@...a.com, james.bottomley@...senpartnership.com,
        kirill.shutemov@...ux.intel.com, ktkhai@...tuozzo.com,
        laoar.shao@...il.com, linux-kernel@...r.kernel.org,
        linux-mm@...ck.org, mgorman@...hsingularity.net, mhocko@...nel.org,
        mhocko@...e.com, oleksandr@...hat.com, ralf@...ux-mips.org,
        rth@...ddle.net, sfr@...b.auug.org.au, shakeelb@...gle.com,
        sonnyrao@...gle.com, surenb@...gle.com,
        syzkaller-bugs@...glegroups.com, timmurray@...gle.com,
        yang.shi@...ux.alibaba.com
Subject: Re: kernel BUG at mm/vmscan.c:LINE! (2)

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@...nel.org>
> 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@...kaller.appspotmail.com
> 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@...nel.org>
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.

Reported-by: syzbot+8e6326965378936537c3@...kaller.appspotmail.com
Fixes: 06a833a1167e ("mm: introduce MADV_PAGEOUT")
Signed-off-by: Minchan Kim <minchan@...nel.org>
---
 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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ