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

From: Thomas Gleixner
Date: Mon Sep 03 2018 - 04:53:35 EST


On Mon, 3 Sep 2018, Peter Zijlstra wrote:

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

> 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.

Thanks,

tglx