[acpi-jp 3117] RE: ACPI-CA 20040311 imported
Moore, Robert
robert.moore at intel.com
Fri Mar 26 13:52:29 PST 2004
Here's an example of ASL recursion:
Method(PWUP,0,NotSerialized)
{
If(LAnd(\_SB.PCI0.CBS0.PWRS,\_SB.PCI0.CBS1.PWRS))
{
If(LNot(And(_ADR /* \_SB.PCI0.CBS0._ADR */,0xFFFF)))
{
And(MCTL /* \_SB.PCI0.CBS0.MCTL */,0x7C,Local0)
Or(Local0,BMCL /* \_SB.PCI0.CBS0.BMCL */,MCTL /*
\_SB.PCI0.CBS0.MCTL */)
}
Else
{
\_SB.PCI0.CBS0.PWUP()
}
}
}
-----Original Message-----
From: Moore, Robert
Sent: Thursday, March 25, 2004 9:32 AM
To: 'Nate Lawson'
Cc: acpi-jp at jp.FreeBSD.org; current at freebsd.org
Subject: RE: [acpi-jp 3117] RE: ACPI-CA 20040311 imported
I think I've seen recursion in some IBM ASL.
Also, since iASL reports a remark when it detects a recursive call,
every now and then someone complains.
Bob
-----Original Message-----
From: Nate Lawson [mailto:nate at root.org]
Sent: Thursday, March 18, 2004 11:11 PM
To: Moore, Robert
Cc: acpi-jp at jp.FreeBSD.org; current at freebsd.org
Subject: Re: [acpi-jp 3117] RE: ACPI-CA 20040311 imported
> -----Original Message-----
> From: owner-acpi-jp at jp.FreeBSD.org
[mailto:owner-acpi-jp at jp.FreeBSD.org]
> On Behalf Of Nate Lawson
> Sent: Thursday, March 18, 2004 10:47 AM
> To: current at freebsd.org; acpi-jp at jp.FreeBSD.org
> Subject: [acpi-jp 3116] ACPI-CA 20040311 imported
>
> See src/sys/contrib/dev/acpica/CHANGES.txt for specific changes.
>
> The main change is that we now support _OSI to announce we're
compatible
> with all the NT-derived MS systems. Also, we now serialize all method
> execution as some ASL depends on this behavior. The MS interpreter
> doesn't support parallel execution, hence this matches their behavior.
>
> If there are problems with these features, please try the tunables:
>
> hw.acpi.osi_method
> hw.acpi.serialize_methods
>
> You can disable each feature by setting it to 0 at the loader prompt
or
> loader.conf.
On Thu, 18 Mar 2004, Moore, Robert wrote:
> 1) If you serialize all methods by default, you will prohibit
recursive
> methods. That's why we made this an option for Linux, and the default
> is to allow reentrant methods.
>
> 2) We are not really sure about the MS interpreter. They claim that
> they support reentrant methods and allow multiple threads to execute.
> But we see problems with the coding of reentrant ASL methods that
imply
> that that multiple threads never execute control methods concurrently
on
> Win*
Interesting. Do you know of any ASL that uses recursive methods? I
haven't ever found any like that. If you don't have a counter-example,
I'm happy to let this sit in the tree for a little while to see if it
solves problems or breaks things for people. If we don't turn it on by
default, it won't get the testing it needs.
-Nate
More information about the freebsd-current
mailing list