2005-11-07 20:44:37

by Moore, Robert

[permalink] [raw]
Subject: RE: [ACPI] ACPI and PRREMPT bug

You might try setting this flag (in acglobal.h) to TRUE:

/*
* Automatically serialize ALL control methods? Default is FALSE,
meaning
* to use the Serialized/NotSerialized method flags on a per method
basis.
* Only change this if the ASL code is poorly written and cannot handle
* reentrancy even though methods are marked "NotSerialized".
*/
ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_AllMethodsSerialized,
FALSE);



> -----Original Message-----
> From: Moore, Robert
> Sent: Monday, November 07, 2005 12:42 PM
> To: '[email protected]'; [email protected]; acpi-
> [email protected]
> Subject: RE: [ACPI] ACPI and PRREMPT bug
>
> I'm aware of this issue and it is under investigation.
> Bob
>
>
> > -----Original Message-----
> > From: [email protected] [mailto:acpi-devel-
> > [email protected]] On Behalf Of Nir Tzachar
> > Sent: Monday, November 07, 2005 1:36 AM
> > To: [email protected]; [email protected]
> > Subject: [ACPI] ACPI and PRREMPT bug
> >
> > hello.
> >
> > I'm encountering a problem with acpi on kernels where preempt is
> > enabled.
> > The problem is 100% reproducible on all kernels starting from
2.6.12.1
> > to 2.6.14
> > ( i didn't try 2.6.11 and below ).
> >
> > the problem is manifested via the battery proc interface. to produce
it,
> > run in two terminals simultaneously:
> > while true; do cat /proc/acpi/battery/BAT0/info; done
> >
> > if i turn on kernel preemption (either voluntary or not), i get the
> > following error messages in dmesg:
> > Nov 7 08:31:00 lapnir ACPI-0292: *** Error: Looking up [SERN] in
> > namespace, AE_ALREADY_EXISTS
> > Nov 7 08:31:00 lapnir ACPI-0508: *** Error: Method execution failed
> > [\_SB_.PCI0.LPC_.EC__.GBIF] (Node c18f5d60), AE_ALREADY_EXISTS
> > Nov 7 08:31:02 lapnir ACPI-0213: *** Error: Method reached maximum
> > reentrancy limit (255)
> > Nov 7 08:31:02 lapnir ACPI-0508: *** Error: Method execution failed
> > [\_SB_.PCI0.LPC_.EC__.BAT0._BIF] (Node c18f5c20),
AE_AML_METHOD_LIMIT
> >
> > and with acpi debugging info turned on:
> > Nov 7 08:46:08 lapnir dswload-0292: *** Error: Looking up [SERN] in
> > namespace, AE_ALREADY_EXISTS
> > Nov 7 08:46:08 lapnir psloop-0287 [4399] ps_parse_loop :
During
> > name lookup/catalog, AE_ALREADY_EXISTS
> > Nov 7 08:46:08 lapnir psparse-0508: *** Error: Method execution
failed
> > [\_SB_.PCI0.LPC_.EC__.GBIF] (Node c18f94e8), AE_ALREADY_EXISTS
> > Nov 7 08:46:08 lapnir osl-0856 [4403] os_wait_semaphore :
Failed to
> > acquire semaphore[c18de5e0|1|0], AE_TIME
> > Nov 7 08:46:08 lapnir dsmethod-0213: *** Error: Method reached
maximum
> > reentrancy limit (255)
> > Nov 7 08:46:08 lapnir psparse-0508: *** Error: Method execution
failed
> > [\_SB_.PCI0.LPC_.EC__.BAT0._BIF] (Node c18f9268),
AE_AML_METHOD_LIMIT
> > Nov 7 08:46:08 lapnir acpi_battery-0144 [4449] battery_get_info
:
> > Error evaluating _BIF
> > Nov 7 08:46:08 lapnir dsmethod-0213: *** Error: Method reached
maximum
> > reentrancy limit (255)
> > Nov 7 08:46:08 lapnir psparse-0508: *** Error: Method execution
failed
> > [\_SB_.PCI0.LPC_.EC__.BAT0._BIF] (Node c18f9268),
AE_AML_METHOD_LIMIT
> >
> >
> > this is repeated until a reboot. loading and unloading the battery
> > module does not help.
> >
> > My computer is a thinkpad t43p, and i didn't try to reproduce it on
> > another laptop
> > (have no access to another model..).
> > If you need more info, let me know.
> >
> > p.s. please cc me, im not in the list.
> >
> > --
> > =========================================================
> > Nir Tzachar.


2005-11-07 23:15:42

by Chris Wright

[permalink] [raw]
Subject: Re: [ACPI] ACPI and PRREMPT bug

* Moore, Robert ([email protected]) wrote:
> You might try setting this flag (in acglobal.h) to TRUE:
>
> /*
> * Automatically serialize ALL control methods? Default is FALSE,
> meaning
> * to use the Serialized/NotSerialized method flags on a per method
> basis.
> * Only change this if the ASL code is poorly written and cannot handle
> * reentrancy even though methods are marked "NotSerialized".
> */
> ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_AllMethodsSerialized,
> FALSE);

I've chatted with another person having this issue. Booting with
acpi_serialize (which sets that flag to true) does seem to fix the
problem. I'm guessing thread_count gets decremented twice for one
increment, causing it to underflow wrapping to -1.

thanks,
-chris

2005-11-08 08:14:29

by Nir Tzachar

[permalink] [raw]
Subject: Re: [ACPI] ACPI and PRREMPT bug

> Booting with
> acpi_serialize (which sets that flag to true) does seem to fix the
> problem.

this partially solves the problem. im still getting this:

Nov 8 10:08:15 lapnir osl-0965 [3164] os_wait_semaphore : Failed to
acquire semaphore[c193c820|1|0], AE_TIME
Nov 8 10:08:17 lapnir osl-0965 [4647] os_wait_semaphore : Failed to
acquire semaphore[c193c820|1|0], AE_TIME

--
=========================================================
Nir Tzachar.


Attachments:
signature.asc (189.00 B)
This is a digitally signed message part