Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1624897

Re: [PATCH] ACPICA: Export mutex functions

From "Rafael J. Wysocki" <rafael@kernel.org>
Newsgroups linux.kernel
Subject Re: [PATCH] ACPICA: Export mutex functions
Date 2017-04-18 01:00 +0200
Message-ID <txnMJ-6Bf-7@gated-at.bofh.it> (permalink)
References (6 earlier) <txkOR-4K8-3@gated-at.bofh.it> <txlKV-5k6-1@gated-at.bofh.it> <txm4h-5Ig-11@gated-at.bofh.it> <txmnD-5OW-5@gated-at.bofh.it> <txntn-6u0-17@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, Apr 18, 2017 at 12:32 AM, Guenter Roeck <linux@roeck-us.net> wrote:
> On Mon, Apr 17, 2017 at 11:29:38PM +0200, Rafael J. Wysocki wrote:
>> On Mon, Apr 17, 2017 at 11:03 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>> > On Mon, Apr 17, 2017 at 08:40:38PM +0000, Moore, Robert wrote:
>> >>

[cut]

>> >> [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.
>
> That is all quite interesting. I do see the mutex in question used on various
> motherboards from various vendors (I checked boards from Gigabyte, MSI, and
> Intel). Interestingly, the naming seems to be consistent - it is always named
> "MUT0". For the most part, it seems to be available on more recent
> motherboards; older motherboards tend to use the resource without locking.
> However, I don't see any mention of "_DLM" in any of the DSDTs.
>
> At the same time, access to ports 0x2e/0x2f is widely used in the kernel.
> As mentioned before, it is used in watchdog, hardware monitoring, and gpio
> drivers, but also in parallel port and infrared driver code. Effectively
> that means that all this code is inherently unsafe on systems with ACPI
> support.

If AML accesses those ports via operation regions, then it is unsafe.

Note, however, that the mere existence of operation regions covering
them doesn't automatically mean that they are accessed by any AML on
the given platform.

> I had thought about implementing a set of utility functions to make the kernel
> code safer to use if the mutex is found to exist. Right now I wonder, though,
> if such code would have a chance to be accepted. Any thoughts on that ?

You can argue that there should be _DLM objects in the ACPI tables on
those platforms, but they are missing, so platform quirks (or
something else to that effect) are needed to ensure mutual exclusion
between AML accesses and direct accesses in drivers etc.

Unlike in the DT case, we have no influence on what the vendors put
into the ACPI tables on their systems, so we need to live with what is
in there and possibly fix up things as needed.

Thanks,
Rafael

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-12 17:20 +0200
  RE: [PATCH] ACPICA: Export mutex functions "Moore, Robert" <robert.moore@intel.com> - 2017-04-12 17:40 +0200
    Re: [PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-12 23:30 +0200
      RE: [PATCH] ACPICA: Export mutex functions "Moore, Robert" <robert.moore@intel.com> - 2017-04-13 00:00 +0200
        Re: [PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-13 03:00 +0200
        Re: [PATCH] ACPICA: Export mutex functions "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-04-15 00:40 +0200
          RE: [PATCH] ACPICA: Export mutex functions "Moore, Robert" <robert.moore@intel.com> - 2017-04-15 01:40 +0200
      RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-17 11:40 +0200
        RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-17 11:50 +0200
          Re: [PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-17 16:10 +0200
            RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-18 01:40 +0200
        Re: [PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-17 18:00 +0200
          RE: [PATCH] ACPICA: Export mutex functions "Moore, Robert" <robert.moore@intel.com> - 2017-04-17 19:20 +0200
            RE: [PATCH] ACPICA: Export mutex functions "Moore, Robert" <robert.moore@intel.com> - 2017-04-17 21:30 +0200
              Re: [PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-17 21:50 +0200
                RE: [PATCH] ACPICA: Export mutex functions "Moore, Robert" <robert.moore@intel.com> - 2017-04-17 22:50 +0200
                Re: [PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-17 23:10 +0200
                Re: [PATCH] ACPICA: Export mutex functions "Rafael J. Wysocki" <rafael@kernel.org> - 2017-04-17 23:30 +0200
                Re: [PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-18 00:40 +0200
                Re: [PATCH] ACPICA: Export mutex functions "Rafael J. Wysocki" <rafael@kernel.org> - 2017-04-18 01:00 +0200
                RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-18 02:00 +0200
                Re: [PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-18 06:40 +0200
                RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-18 09:10 +0200
                RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-18 09:20 +0200
                Re: [PATCH] ACPICA: Export mutex functions Guenter Roeck <linux@roeck-us.net> - 2017-04-18 16:00 +0200
                Re: [PATCH] ACPICA: Export mutex functions "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-04-18 16:30 +0200
                RE: [PATCH] ACPICA: Export mutex functions "Moore, Robert" <robert.moore@intel.com> - 2017-04-18 18:10 +0200
                RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-19 03:30 +0200
                RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-19 03:40 +0200
                RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-18 02:00 +0200
              RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-18 01:50 +0200
            RE: [PATCH] ACPICA: Export mutex functions "Moore, Robert" <robert.moore@intel.com> - 2017-04-17 21:40 +0200
          RE: [PATCH] ACPICA: Export mutex functions "Zheng, Lv" <lv.zheng@intel.com> - 2017-04-18 01:40 +0200

csiph-web