RE: [PATCH V2 5/6] x86/mm: If in_atomic(), allocate pages without sleeping

From: Prakhya, Sai Praneeth
Date: Mon Sep 03 2018 - 13:07:07 EST


> Thanks for CC'ing me. I wonder why the world and some more is on CC, but
> x86@xxxxxxxxxx is NOT.
>

Sorry! about that. I will CC you and x86 from V3.

> > On Sun, Sep 02, 2018 at 02:46:33AM -0700, Sai Praneeth Prakhya wrote:
>
> > > @@ -926,7 +926,13 @@ static void unmap_pud_range(p4d_t *p4d,
> > > unsigned long start, unsigned long end)
> > >
> > > static int alloc_pte_page(pmd_t *pmd) {
> > > - pte_t *pte = (pte_t *)get_zeroed_page(GFP_KERNEL);
> > > + pte_t *pte;
> > > +
> > > + if (in_atomic())
> > > + pte = (pte_t *)get_zeroed_page(GFP_ATOMIC);
> > > + else
> > > + pte = (pte_t *)get_zeroed_page(GFP_KERNEL);
> > > +
> > > if (!pte)
> > > return -1;
> > >
> >
> > This looks like tinkering to me..
>
> Yes it is and it's not going to happen.

Haha.. ok.. I will take your suggestion in the 4th patch and that should avoid this.

Regards,
Sai