2022-05-14 01:15:50

by Mike Kravetz

[permalink] [raw]
Subject: Re: [syzbot] WARNING in follow_hugetlb_page

On 5/13/22 11:09, Mike Kravetz wrote:
> On 5/13/22 10:26, Andrew Morton wrote:
>> On Fri, 13 May 2022 09:43:24 -0700 syzbot <[email protected]> wrote:
>>
>>> syzbot has found a reproducer for the following issue on:
>>
>> Thanks.
>>
>>> HEAD commit: 1e1b28b936ae Add linux-next specific files for 20220513
>>> git tree: linux-next
>>> console+strace: https://syzkaller.appspot.com/x/log.txt?x=174ae715f00000
>>> kernel config: https://syzkaller.appspot.com/x/.config?x=e4eb3c0c4b289571
>>> dashboard link: https://syzkaller.appspot.com/bug?extid=acf65ca584991f3cc447
>>> 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=11531766f00000
>>> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=16ce5a9ef00000
>>>
>>> IMPORTANT: if you fix the issue, please add the following tag to the commit:
>>> Reported-by: [email protected]
>>>
>>> ------------[ cut here ]------------
>>> WARNING: CPU: 1 PID: 3611 at mm/hugetlb.c:6250 follow_hugetlb_page+0x1326/0x1c80 mm/hugetlb.c:6250
>>
>> The try_grab_folio() added by 822951d84684d ("mm/hugetlb: Use
>> try_grab_folio() instead of try_grab_compound_head()"). That commit
>> has been there over a month so I guess it's something else. Does
>> someone have the time to bisect?
>
> I can recreate in my 'easy to debug' environment, so I can bisect in
> parallel with other things I need to do today.
>

I isolated this to Minchan Kim's "mm: fix is_pinnable_page against on cma
page". Yes, the fat finger fix is in next-20220513.

I don't have time to analyze right now, but can confirm that in the
reproducer is_pinnable_page is returning false after this change when it
previously returned true.
--
Mike Kravetz


2022-05-14 04:22:34

by Andrew Morton

[permalink] [raw]
Subject: Re: [syzbot] WARNING in follow_hugetlb_page

On Fri, 13 May 2022 15:48:15 -0700 Mike Kravetz <[email protected]> wrote:

> On 5/13/22 11:09, Mike Kravetz wrote:
> > On 5/13/22 10:26, Andrew Morton wrote:
> >> On Fri, 13 May 2022 09:43:24 -0700 syzbot <[email protected]> wrote:
> >>
> >>> syzbot has found a reproducer for the following issue on:
> >>
> >> Thanks.
> >>
> >>> HEAD commit: 1e1b28b936ae Add linux-next specific files for 20220513
> >>> git tree: linux-next
> >>> console+strace: https://syzkaller.appspot.com/x/log.txt?x=174ae715f00000
> >>> kernel config: https://syzkaller.appspot.com/x/.config?x=e4eb3c0c4b289571
> >>> dashboard link: https://syzkaller.appspot.com/bug?extid=acf65ca584991f3cc447
> >>> 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=11531766f00000
> >>> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=16ce5a9ef00000
> >>>
> >>> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> >>> Reported-by: [email protected]
> >>>
> >>> ------------[ cut here ]------------
> >>> WARNING: CPU: 1 PID: 3611 at mm/hugetlb.c:6250 follow_hugetlb_page+0x1326/0x1c80 mm/hugetlb.c:6250
> >>
> >> The try_grab_folio() added by 822951d84684d ("mm/hugetlb: Use
> >> try_grab_folio() instead of try_grab_compound_head()"). That commit
> >> has been there over a month so I guess it's something else. Does
> >> someone have the time to bisect?
> >
> > I can recreate in my 'easy to debug' environment, so I can bisect in
> > parallel with other things I need to do today.
> >
>
> I isolated this to Minchan Kim's "mm: fix is_pinnable_page against on cma
> page". Yes, the fat finger fix is in next-20220513.
>
> I don't have time to analyze right now, but can confirm that in the
> reproducer is_pinnable_page is returning false after this change when it
> previously returned true.

OK, thanks, I dropped mm-fix-is_pinnable_page-against-on-cma-page.patch

2022-05-14 04:26:33

by Minchan Kim

[permalink] [raw]
Subject: Re: [syzbot] WARNING in follow_hugetlb_page

On Fri, May 13, 2022 at 04:19:10PM -0700, Andrew Morton wrote:
> On Fri, 13 May 2022 15:48:15 -0700 Mike Kravetz <[email protected]> wrote:
>
> > On 5/13/22 11:09, Mike Kravetz wrote:
> > > On 5/13/22 10:26, Andrew Morton wrote:
> > >> On Fri, 13 May 2022 09:43:24 -0700 syzbot <[email protected]> wrote:
> > >>
> > >>> syzbot has found a reproducer for the following issue on:
> > >>
> > >> Thanks.
> > >>
> > >>> HEAD commit: 1e1b28b936ae Add linux-next specific files for 20220513
> > >>> git tree: linux-next
> > >>> console+strace: https://syzkaller.appspot.com/x/log.txt?x=174ae715f00000
> > >>> kernel config: https://syzkaller.appspot.com/x/.config?x=e4eb3c0c4b289571
> > >>> dashboard link: https://syzkaller.appspot.com/bug?extid=acf65ca584991f3cc447
> > >>> 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=11531766f00000
> > >>> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=16ce5a9ef00000
> > >>>
> > >>> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > >>> Reported-by: [email protected]
> > >>>
> > >>> ------------[ cut here ]------------
> > >>> WARNING: CPU: 1 PID: 3611 at mm/hugetlb.c:6250 follow_hugetlb_page+0x1326/0x1c80 mm/hugetlb.c:6250
> > >>
> > >> The try_grab_folio() added by 822951d84684d ("mm/hugetlb: Use
> > >> try_grab_folio() instead of try_grab_compound_head()"). That commit
> > >> has been there over a month so I guess it's something else. Does
> > >> someone have the time to bisect?
> > >
> > > I can recreate in my 'easy to debug' environment, so I can bisect in
> > > parallel with other things I need to do today.
> > >
> >
> > I isolated this to Minchan Kim's "mm: fix is_pinnable_page against on cma
> > page". Yes, the fat finger fix is in next-20220513.
> >
> > I don't have time to analyze right now, but can confirm that in the
> > reproducer is_pinnable_page is returning false after this change when it
> > previously returned true.
>
> OK, thanks, I dropped mm-fix-is_pinnable_page-against-on-cma-page.patch

Seems like bug of the patch v5 due to change of this

if (mt & (MIGRATE_CMA | MIGRATE_ISOLATE))

The migration type is not bit type so it shold be

if (mt == MIGRATE_CMA || mt == MIGRATE_ISOLATE)

Ccing just in case if I miss other thing for HugeTLB