[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20220719200909.aidey3bazovcj45n@revolver>
Date: Tue, 19 Jul 2022 20:10:54 +0000
From: Liam Howlett <liam.howlett@...cle.com>
To: syzbot <syzbot+28eb226ee1d37f08087a@...kaller.appspotmail.com>
CC: "akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
"syzkaller-bugs@...glegroups.com" <syzkaller-bugs@...glegroups.com>,
"willy@...radead.org" <willy@...radead.org>
Subject: Re: [syzbot] WARNING in page_counter_cancel (4)
* syzbot <syzbot+28eb226ee1d37f08087a@...kaller.appspotmail.com> [220718 03:45]:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: cb71b93c2dc3 Add linux-next specific files for 20220628
> git tree: linux-next
> console+strace: https://syzkaller.appspot.com/x/log.txt?x=15583826080000
> kernel config: https://syzkaller.appspot.com/x/.config?x=badbc1adb2d582eb
> dashboard link: https://syzkaller.appspot.com/bug?extid=28eb226ee1d37f08087a
> compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=12222b9a080000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1560ab8c080000
>
> The issue was bisected to:
>
> commit 2ee236fe53a8e2ab54679c74e8a1fb77e55b29bb
> Author: Liam R. Howlett <Liam.Howlett@...cle.com>
> Date: Tue Jun 21 20:46:53 2022 +0000
>
> mm: start tracking VMAs with maple tree
>
> bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=10b5b252080000
> final oops: https://syzkaller.appspot.com/x/report.txt?x=12b5b252080000
> console output: https://syzkaller.appspot.com/x/log.txt?x=14b5b252080000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+28eb226ee1d37f08087a@...kaller.appspotmail.com
> Fixes: 2ee236fe53a8 ("mm: start tracking VMAs with maple tree")
>
Thank you. Yes, it looks like failing the allocation after
vma_adjust_trans_huge() is not working out here. What happens is a
split fails to vm_adjust, so we enter the __split_vm() error code path
which calls vm_ops->close(). The account for the hughtlb is actually
done in the close() operation. What I can do is to avoid accounting by
setting vm_start = vm_end, and vm_pgoff = 0. This way, the accounting
will charge 0 as apposed to removing the vma that was never added.
Powered by blists - more mailing lists