Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ACPI Exception AE_NO_MEMORY



On Tue, Apr 20, 2010 at 12:31:37PM +0000, Andrew Doran wrote:
> On Tue, Apr 20, 2010 at 01:38:53PM +0300, Jukka Ruohonen wrote:
> > As I noted already, this is malloc(9) returning ENOMEM and ACPI complaining
> > about it (ENOMEM -> AE_NO_MEMORY). The path where this occurs in ACPI is
> > related to interrupts, so it is pretty serious as far as ACPI is concerned.
> 
> Why is it doing M_NOWAIT allocations?  NOWAIT == fail.

Will it _always_ fail - even when there's RAM available?  Or only when all
free RAM is used up by, say, disk buffers?

I don't know how the ACPI events work, but if works like this, I can see why
the system dies:

  1. an interrupt occurs and an ACPI event is generated

  2. memory allocation for the event fails, so the event
     can not be enqueued

  3. the interrupt is not cleared because the event could not be
     enqueued (so we don't miss the event completely)

  4. interrupt routine exits

  5. the interrupt is still active, loop back to 1.

Again, I don't know if the kernel works like this, but this would explain
the problem I'm having..

  -jm


Home | Main Index | Thread Index | Old Index