Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756568AbdDQV3m (ORCPT ); Mon, 17 Apr 2017 17:29:42 -0400 Received: from mail-oi0-f42.google.com ([209.85.218.42]:33132 "EHLO mail-oi0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756328AbdDQV3j (ORCPT ); Mon, 17 Apr 2017 17:29:39 -0400 MIME-Version: 1.0 In-Reply-To: <20170417210353.GA19771@roeck-us.net> References: <1492009990-3539-1-git-send-email-linux@roeck-us.net> <94F2FBAB4432B54E8AACC7DFDE6C92E37E5924DB@ORSMSX110.amr.corp.intel.com> <20170412212241.GA12384@roeck-us.net> <1AE640813FDE7649BE1B193DEA596E886CE92A85@SHSMSX101.ccr.corp.intel.com> <20170417155646.GA8730@roeck-us.net> <94F2FBAB4432B54E8AACC7DFDE6C92E37E59332C@ORSMSX110.amr.corp.intel.com> <94F2FBAB4432B54E8AACC7DFDE6C92E37E59345B@ORSMSX110.amr.corp.intel.com> <20170417194527.GA16734@roeck-us.net> <94F2FBAB4432B54E8AACC7DFDE6C92E37E593580@ORSMSX110.amr.corp.intel.com> <20170417210353.GA19771@roeck-us.net> From: "Rafael J. Wysocki" Date: Mon, 17 Apr 2017 23:29:38 +0200 X-Google-Sender-Auth: Ah736m-EifbScOtC92SqFstPysI Message-ID: Subject: Re: [PATCH] ACPICA: Export mutex functions To: Guenter Roeck Cc: "Moore, Robert" , "Zheng, Lv" , "Wysocki, Rafael J" , Len Brown , "linux-acpi@vger.kernel.org" , "devel@acpica.org" , "linux-kernel@vger.kernel.org" , "Box, David E" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3140 Lines: 80 On Mon, Apr 17, 2017 at 11:03 PM, Guenter Roeck wrote: > On Mon, Apr 17, 2017 at 08:40:38PM +0000, Moore, Robert wrote: >> >> >> > -----Original Message----- >> > From: Guenter Roeck [mailto:linux@roeck-us.net] >> > Sent: Monday, April 17, 2017 12:45 PM >> > To: Moore, Robert >> > Cc: Zheng, Lv ; Wysocki, Rafael J >> > ; 'Len Brown' ; 'linux- >> > acpi@vger.kernel.org' ; 'devel@acpica.org' >> > ; 'linux-kernel@vger.kernel.org' > > kernel@vger.kernel.org>; Box, David E >> > Subject: Re: [PATCH] ACPICA: Export mutex functions >> > >> > On Mon, Apr 17, 2017 at 07:27:37PM +0000, Moore, Robert wrote: >> > > >> > > > -----Original Message----- >> > > > From: Moore, Robert >> > > > Sent: Monday, April 17, 2017 10:13 AM >> > > > To: Guenter Roeck ; Zheng, Lv >> > > > >> > > > Cc: Wysocki, Rafael J ; Len Brown >> > > > ; linux-acpi@vger.kernel.org; devel@acpica.org; >> > > > linux- kernel@vger.kernel.org >> > > > 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. >> > > >> > From the context in the dsdt, and from description of expected use cases >> > for _DLM objects I can find, this is what the mutex is used for (to >> > serialize access to a resource on a low pin count serial interconnect, >> > aka LPC). >> > >> > What does that mean in practice ? That I am not supposed to use it >> > because it doesn't follow standard ACPI mutex declaration rules ? >> > >> > Thanks, >> > Guenter >> > >> > > >> [Moore, Robert] >> >> I'm not an expert on the _DLM method, but I would point you to the description section in the ACPI spec, 5.7.5 _DLM (DeviceLock Mutex). >> > > I did. However, not being an ACPI expert, that doesn't tell me anything. Basically, if the kernel and AML need to access a device concurrently, there should be a _DLM object under that device in the ACPI tables. In that case it is expected to return a list of (AML) mutexes that can be acquired by the kernel in order to synchronize device access with respect to AML (and for each mutex it may also return a description of the specific resources to be protected by it). Bottom line: without _DLM, the kernel cannot synchronize things with respect to AML properly, because it has no information how to do that then. Thanks, Rafael