Re: mm: BUG in do_huge_pmd_wp_page

From: Hugh Dickins
Date: Thu May 15 2014 - 13:59:39 EST


On Thu, 15 May 2014, Sasha Levin wrote:
> On 05/15/2014 01:37 PM, Hugh Dickins wrote:
> > On Thu, 15 May 2014, Sasha Levin wrote:
> >> On 04/07/2014 04:11 PM, Kirill A. Shutemov wrote:
> >>> On Mon, Apr 07, 2014 at 03:40:46PM -0400, Sasha Levin wrote:
> >>>>> It also breaks fairly quickly under testing because:
> >>>>>
> >>>>> On 04/07/2014 10:48 AM, Kirill A. Shutemov wrote:
> >>>>>>> + if (IS_ENABLED(CONFIG_DEBUG_PAGEALLOC)) {
> >>>>>>> + spin_lock(ptl);
> >>>>>
> >>>>> ^ We go into atomic
> >>>>>
> >>>>>>> + if (unlikely(!pmd_same(*pmd, orig_pmd)))
> >>>>>>> + goto out_race;
> >>>>>>> + }
> >>>>>>> +
> >>>>>>> if (!page)
> >>>>>>> clear_huge_page(new_page, haddr, HPAGE_PMD_NR);
> >>>>>>> else
> >>>>>>> copy_user_huge_page(new_page, page, haddr, vma, HPAGE_PMD_NR);
> >>>>>
> >>>>> copy_user_huge_page() doesn't like running in atomic state,
> >>>>> and asserts might_sleep().
> >>> Okay, I'll try something else.
> >>
> >> I've Cc'ed Josh Boyer to this since it just occurred to me that Fedora
> >> is running with CONFIG_DEBUG_VM set, where this bug is rather easy to
> >> trigger.
> >>
> >> This issue was neglected because it triggers only on CONFIG_DEBUG_VM builds,
> >> but with Fedora running that, maybe it shouldn't be?
> >
> > But it triggers only on CONFIG_DEBUG_PAGEALLOC builds, doesn't it?
> > I hope Fedora doesn't go out with that enabled.
>
> Ow, it needs DEBUG_PAGEALLOC too? I forgot about that one.

Yes. And furthermore, whereas many DEBUG_PAGEALLOC reports are early
warnings of real problems in non-DEBUG_PAGEALLOC kernels, this one is
not. It's a case where the non-DEBUG_PAGEALLOC kernel is correct, and
the DEBUG_PAGEALLOC kernel too strict. Fixable, but not yet in a way
that satisfied Kirill or me.

>
> No problem for Fedora then, sorry for the noise :(

Oh, this is much more welcome noise than your usual bug reports :)

Hugh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/