Re: Hard Hang with __alloc_pages: 0-order allocation failed (gfp=0x20/1) - Not out of memory

Marcelo Tosatti
2004-05-25T23:38:24Z

On Tue, May 25, 2004 at 07:53:09PM -0300, Marcelo Tosatti wrote:
> On Tue, May 25, 2004 at 02:47:59PM -0700, David S. Miller wrote:
> > On Tue, 25 May 2004 14:20:23 -0700
> > "Feldman, Scott" <scott.feldman@intel.com> wrote:
> >
> > > Marcelo Tosatti wrote:
> > >
> > > > It seems we are calling alloc_skb(GFP_KERNEL) from inside an
> > > > interrupt handler. Oops.
> > >
> > > We're calling dev_alloc_skb() from hard interrupt context, but it uses
> > > GFP_ATOMIC, not GFP_KERNEL, so this is OK, right? I don't see the
> > > problem with e1000.
> >
> > Neither do I, where is the detailed backtrace of this GFP_KERNEL
> > allocation supposedly from interrupt context?
>
> That was just a very wrong guess, I must admit.
>
> Actually what seems to be happening is an e1000 IRQ while
> trying to free memory (shrink_caches()) which tries to
> allocate more memory.
>
> Locked caused by extremely high load it seems.
>
> You know better than me.

Probably NAPI makes a difference?