All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Starikovskiy <aystarik@gmail.com>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: linux-acpi@vger.kernel.org, Len Brown <lenb@kernel.org>,
	"Moore, Robert" <robert.moore@intel.com>
Subject: Re: AML method concurrency
Date: Wed, 30 May 2007 21:27:02 +0400	[thread overview]
Message-ID: <465DB3E6.5050207@gmail.com> (raw)
In-Reply-To: <200705301011.46724.bjorn.helgaas@hp.com>

Bjorn Helgaas ?????:
> On Wednesday 30 May 2007 01:37:40 am Alexey Starikovskiy wrote:
>> There is a "limited concurrency" in interpreter.
>> There is a "executor" semaphore(acpi_ex_{enter/exit}_interpreter), which
>> prevents generic concurrent execution of methods, but in the case of the
>> method blocking (mutex or sleep) it will be released and reacquired
>> after, thus allowing some other method to run during block.
> 
> That's good information on the Intel CA implementation.  Do we know
> what other implementations do?
Essentially there is only one _other_ implementation and by some rumors
it was not allowing execution of methods in parallel at all, so
acpi_serialize was introduced to copy that behavior.
> 
> Is there language in the ACPI spec itself that precludes concurrent
> execution?
This spec should be taken with some caution, because the _other_
implementation, on which BIOS vendors _do_ check their code, does not
follow every letter of it... And we could only guess how they choose to
deviate from it in every case.

> 
> How exactly is the "acpi_serialize" Linux option useful?  If the
> ACPI_MTX_INTERPRETER mutex prevents concurrency already, what good
> is "acpi_serialize"?
Without acpi_serialize there is some degree of concurrency, as I
explained earlier. So acpi_serialize does not allow methods to execute
while some method is blocked.
> 
>> Bjorn Helgaas ?????:
>>> Can AML methods be executed concurrently?
>>>
>>> The existence of mutexes, serialized methods, and the Linux
>>> "acpi_serialize" parameter makes me think that in general, we
>>> should be able to execute multiple AML methods concurrently.
>>>
>>> However, the ACPI CA Programmer Reference, rev 1.16, section 2.2.5,
>>> says:
>>>
>>>   The specification states that at most one control method can be
>>>   actually executing AML code at any given time.  ...  it can be
>>>   said that the specification precludes the concurrent execution
>>>   of control methods.
>>>
>>> It is referring to the ACPI specification, but I don't see any
>>> explicit statement there.  I've been pointed to this text from
>>> ACPI 3.0, section 5.5.2:
>>>
>>>   Interpretation of a Control Method is not preemptive, but it can
>>>   block.  When a control method does block, the operating software
>>>   can initiate or continue the execution of a different control
>>>   method.
>>>
>>> But this doesn't actually say anything about concurrency.
>>>
>>> If ACPI does in fact preclude concurrent method execution, can you
>>> point me to discussion of this in the ACPI spec?
>>>
>>> Bjorn
> 


      reply	other threads:[~2007-05-30 17:27 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-29 20:54 AML method concurrency Bjorn Helgaas
2007-05-30  7:37 ` Alexey Starikovskiy
2007-05-30 16:11   ` Bjorn Helgaas
2007-05-30 17:27     ` Alexey Starikovskiy [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=465DB3E6.5050207@gmail.com \
    --to=aystarik@gmail.com \
    --cc=bjorn.helgaas@hp.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=robert.moore@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.