Thread (1 message) 1 message, 1 author, 2004-08-06

RE: Method execution failed

From: Alex Williamson <hidden>
Date: 2004-08-06 17:27:18

On Fri, 2004-08-06 at 10:07 -0700, Moore, Robert wrote:
This is a bug in the ASL/AML for this machine.  Methods that are
declared "NotSerialized" are forbidden from creating objects within the
namespace (or at least forbidden from creating names that will clash).
  Argh, I'll bug our firmware guys it that's the problem.
There is a fix to the ACPI code that detects this problem and changes
"NotSerialized" to "Serialized" on the fly.  There is also a runtime
option to force all control methods to be "Serialized".
   I tried adding acpi_serialize to my boot options, I see "ACPI:
serialize enabled" in dmesg.  However, it still breaks when calling
methods concurrently.  Looks like acpi_ut_init_globals() is likely
reseting later on.  How do I enable the on-the-fly checking?  Thanks for
the quick response!

	Alex
quoted
-----Original Message-----
From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Alex Williamson
Sent: Friday, August 06, 2004 9:48 AM
To: acpi-devel
Subject: [ACPI] Method execution failed


   I think there's a locking issue w/ namespace for concurrent calls
to
quoted
acpi_evaluate_object().  FWIW, these concurrent calls are coming in
through my acpi sysfs patch, so it could be a bug in that code.  If I
serialize calls into acpi_evaluate_object(), it works fine, but I
don't
quoted
see a global lock for this, so I think the problem is more general.
If
quoted
I make lots of calls to evaluate the same _BBN object, I start seeing
these:

ACPI-0279: *** Error: Looking up [LBAS] in namespace,
AE_ALREADY_EXISTS
quoted
ACPI-1133: *** Error: Method execution failed [\LBA_.BBN_] (Node
e00000407fd

This starts at acpi_ds_load1_begin_op() doing a path lookup,
presumably
quoted
expecting not to find the path with flag ACPI_NS_ERROR_IF_FOUND.  The
AML for the method is:

0000000: a45c 2e4c 4241 5f42 424e 5f5e 5f55 4944  .\.LBA_BBN_^_UID

The first part of the _SB/LBA/BBN_ AML looks like this:

0000000: 084c 4241 5311 030a 408a 4c42 4153 0056  .LBAS...@.LBAS.V
0000010: 414c 448a 4c42 4153 0a04 4c46 4c47 8a4c  ALD.LBAS..LFLG.L
...

The LBA/BBN_ method appears to make an object named LBAS.  When
calling
quoted
this multiple times, each instance wants to not find this object and
then create it.  However, the namespace lock is given up around method
execution, so it seems we have some races.  Am I completely mis-
interpreting the problem, or does this sound plausible?  I don't
really
quoted
know how to read AML, so this is just a guess.  Do we need to be more
stringent on locking namespace, or is there a bug in the AML I'm
calling?  Thanks,

	Alex

--
Alex Williamson                             HP Linux & Open Source Lab
-- 
Alex Williamson                             HP Linux & Open Source Lab



-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help