From owner-acpi-jp@jp.freebsd.org  Wed Nov  7 01:38:41 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id BAA02147;
	Wed, 7 Nov 2001 01:38:41 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from mail5.speakeasy.net (mail5.speakeasy.net [216.254.0.205])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id BAA02140
	for <acpi-jp@jp.FreeBSD.org>; Wed, 7 Nov 2001 01:38:40 +0900 (JST)
	(envelope-from jhb@FreeBSD.org)
Received: (qmail 5869 invoked from network); 6 Nov 2001 16:38:33 -0000
Received: from unknown (HELO laptop.baldwin.cx) ([64.81.54.73]) (envelope-sender <jhb@FreeBSD.org>)
          by mail5.speakeasy.net (qmail-ldap-1.03) with SMTP
          for <robert.moore@intel.com>; 6 Nov 2001 16:38:33 -0000
Message-ID: <XFMail.011106083833.jhb@FreeBSD.org>
X-Mailer: XFMail 1.4.0 on FreeBSD
X-Priority: 3 (Normal)
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
In-Reply-To: <B9ECACBD6885D5119ADC00508B68C1EA2FDFD9@orsmsx107.jf.intel.com>
Date: Tue, 06 Nov 2001 08:38:33 -0800 (PST)
From: John Baldwin <jhb@FreeBSD.org>
To: "Moore, Robert" <robert.moore@intel.com>
Cc: "Diefenbaugh, Paul S" <paul.s.diefenbaugh@intel.com>, Therien,
        Guy <guy.therien@intel.com>, Grover, Andrew <andrew.grover@intel.com>,
        acpi-jp@jp.FreeBSD.org, Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: acpi-jp 1443
Subject: [acpi-jp 1443] RE: ACPI CA  Mutex patches
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: jhb@FreeBSD.org


On 05-Nov-01 Moore, Robert wrote:
>     Method(TES4)
>     {
>             Acquire(MUT1, 0x500)
>             Acquire(MUT0, 0x500)
>             Release(MUT1)
>             Release(MUT0)           /* AE_AML_MUTEX_ORDER */
>     }

Why does release order matter?  In a typical mutex implementation, blocking
only occurs on a contested acquire.  Releases never block, so releases can
never result in deadlocks.

Briefly looking at the code, I agree that the CurrentSyncLevel belongs in the
thread and not in the lock.

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/
