RE: [PATCH] ACPICA: Export mutex functions

From: Moore, Robert
Date: Mon Apr 17 2017 - 15:35:49 EST




> -----Original Message-----
> From: Moore, Robert
> Sent: Monday, April 17, 2017 12:28 PM
> To: 'Guenter Roeck' <linux@xxxxxxxxxxxx>; Zheng, Lv <lv.zheng@xxxxxxxxx>
> Cc: Wysocki, Rafael J <rafael.j.wysocki@xxxxxxxxx>; 'Len Brown'
> <lenb@xxxxxxxxxx>; 'linux-acpi@xxxxxxxxxxxxxxx' <linux-
> acpi@xxxxxxxxxxxxxxx>; 'devel@xxxxxxxxxx' <devel@xxxxxxxxxx>; 'linux-
> kernel@xxxxxxxxxxxxxxx' <linux-kernel@xxxxxxxxxxxxxxx>; Box, David E
> (david.e.box@xxxxxxxxx) <david.e.box@xxxxxxxxx>
> Subject: RE: [PATCH] ACPICA: Export mutex functions
>
>
> > -----Original Message-----
> > From: Moore, Robert
> > Sent: Monday, April 17, 2017 10:13 AM
> > To: Guenter Roeck <linux@xxxxxxxxxxxx>; Zheng, Lv <lv.zheng@xxxxxxxxx>
> > Cc: Wysocki, Rafael J <rafael.j.wysocki@xxxxxxxxx>; Len Brown
> > <lenb@xxxxxxxxxx>; linux-acpi@xxxxxxxxxxxxxxx; devel@xxxxxxxxxx;
> > linux- kernel@xxxxxxxxxxxxxxx
> > Subject: RE: [PATCH] ACPICA: Export mutex functions
> >
> > There is a model for the drivers to directly acquire an AML mutex
> > object. That is why the acquire/release public interfaces were added
> > to ACPICA.
> >
> > I forget all of the details, but the model was developed with MS and
> > others during the ACPI 6.0 timeframe.
> >
> >
> [Moore, Robert]
>
>
> Here is the case where the OS may need to directly acquire an AML mutex:
>
> From the ACPI spec:
>
> 19.6.2 Acquire (Acquire a Mutex)
>
> Note: For Mutex objects referenced by a _DLM object, the host OS may
> also contend for ownership.
>
> Other than this case, the OS/drivers should never need to directly
> acquire an AML mutex.
> Bob

[Moore, Robert]
Here is more information, from the ACPICA reference:

8.3.15 AcpiAcquireMutex

This function is intended to be used in conjunction with the _DLM (Device Lock Method) predefined name to directly acquire a mutex object that is defined in the ACPI namespace. The purpose of this is to provide a mutual exclusion mechanism between the AML interpreter and an ACPI-related device driver, in order to support multiple-operation transactions.

>From the ACPI Specification: "The _DLM object appears in a device scope when AML access to the device must be synchronized with the OS environment. It is used in conjunction with a standard Mutex object. With _DLM, the standard Mutex provides synchronization within the AML environment as usual, but also synchronizes with the OS environment."

The AML mutex node is pointed to by Parent:Pathname. Either the Parent or the Pathname can be NULL, but not both.

If the operation fails an appropriate status will be returned.