Bug 194031

Summary: Slow _Q66 - ACPI Error: Thread 2516811776 cannot release Mutex [PATM] - Dell XPS 13 9365
Product: ACPI Reporter: davidnmfarrell
Component: ACPICA-CoreAssignee: Lv Zheng (lv.zheng)
Status: CLOSED DOCUMENTED    
Severity: normal CC: hector.jerezano, lenb, patrik.kullman, pmenzel+bugzilla.kernel.org, rui.zhang, yu.c.chen
Priority: P1    
Hardware: Intel   
OS: Linux   
Kernel Version: 4.10.0-rc7 Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg.txt
acpidump.txt
4.10.0 RC6 .config

Description davidnmfarrell 2017-02-05 22:13:39 UTC
Created attachment 254201 [details]
dmesg.txt

These ACPI errors show in dmesg output on boot, and when new messages appear when the power cable is inserted, and removed.
Comment 1 davidnmfarrell 2017-02-05 22:16:19 UTC
My hardware is a Dell XPS 13 9365, 2 in 1, running an Intel Kaby Lake i7-7Y75.
Comment 2 Len Brown 2017-02-07 00:42:29 UTC
this is a relatively new machine -- please check that you have the latest BIOS.

please attach the acpidump output from the current BIOS,
and then again if you update the BIOS.
Comment 3 davidnmfarrell 2017-02-07 03:12:27 UTC
Ah, I already have the latest BIOS provided by Dell (http://www.dell.com/support/home/us/en/19/product-support/product/xps-13-9365-2-in-1-laptop/drivers?newtab=true&c=us&l=en&s=dhs).

Uploading the output of acpidump as requested. Thanks.
Comment 4 davidnmfarrell 2017-02-07 03:13:46 UTC
Created attachment 254421 [details]
acpidump.txt
Comment 5 Lv Zheng 2017-02-07 06:44:32 UTC
Please also upload your .config here.

Thanks
Lv
Comment 6 davidnmfarrell 2017-02-07 14:02:43 UTC
Created attachment 254461 [details]
4.10.0 RC6 .config
Comment 7 davidnmfarrell 2017-02-07 14:04:43 UTC
One interesting thing about this machine: the power cable plugs into the USB C port. There are two ports, and unplugging/plugging the power cable into either port causes the same ACPI errors in the log.
Comment 8 Lv Zheng 2017-03-23 05:54:05 UTC
I cannot see something wrong here:
            Method (_Q66, 0, NotSerialized)  // _Qxx: EC Query
            {
                Acquire (PATM, 0x0064)
                If ((ECRD == One))
                {
                    NEVT ()
                }

                Release (PATM)
                Return (Zero)
            }

It lools one of the _Q66 call holds PATM, then the next _Q66 call failed to acquier PATM, but _Q66 can be executed due to timeout value 0x0064. Then when the next _Q66 call proceed to Release (PATM), error appears.

However it shouldn't affect functionalities, so this looks like a BIOS problem to me, the timeout shouldn't be there or _Q66 should be Serialized.
Comment 9 Lv Zheng 2017-03-23 06:04:00 UTC
Maybe the only problem is NEVT is too slow on Linux, should be able to tune it to reduce errors.
Anyway BIOS should check the Acquire returning value, and call Release depending on the returning value.
So this is finally a BIOS bug.
But since it dosent leave any functional issues, we seem can ignore the errors.
Comment 10 Lv Zheng 2017-07-04 01:23:59 UTC
Closing as documented to be a BIOS issue and no function problems related.
Comment 11 Lv Zheng 2017-08-09 01:27:50 UTC
*** Bug 196415 has been marked as a duplicate of this bug. ***
Comment 12 Patrik Kullman 2018-07-12 07:51:37 UTC
This is how it looks on 4.l8-rc4 with latest BIOS, can the pcieport stuff be related?

[168563.136042] pcieport 0000:00:1c.0: AER: Corrected error received: 0000:00:1c.0
[168563.136059] pcieport 0000:00:1c.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, (Receiver ID)
[168563.136076] pcieport 0000:00:1c.0:   device [8086:9d10] error status/mask=00000001/00002000
[168563.136088] pcieport 0000:00:1c.0:    [ 0] Receiver Error         (First)
[170086.554726] ACPI Error: Thread 1783148288 cannot release Mutex [PATM] acquired by thread 2213332608 (20180531/exmutex-382)
[170086.554750] No Local Variables are initialized for Method [_Q66]
[170086.554754] No Arguments are initialized for method [_Q66]
[170086.554761] ACPI Error: Method parse/execution failed \_SB.PCI0.LPCB.ECDV._Q66, AE_AML_NOT_OWNER (20180531/psparse-516)
[170087.285025] ACPI Error: Thread 2213332608 cannot release Mutex [PATM] acquired by thread 1783148288 (20180531/exmutex-382)
[170087.285037] No Local Variables are initialized for Method [_Q66]
[170087.285039] No Arguments are initialized for method [_Q66]
[170087.285041] ACPI Error: Method parse/execution failed \_SB.PCI0.LPCB.ECDV._Q66, AE_AML_NOT_OWNER (20180531/psparse-516)
[170087.393577] ACPI Error: Thread 2842564480 cannot release Mutex [PATM] acquired by thread 1783148288 (20180531/exmutex-382)
[170087.393605] No Local Variables are initialized for Method [_Q66]
[170087.393610] No Arguments are initialized for method [_Q66]
[170087.393614] ACPI Error: Method parse/execution failed \_SB.PCI0.LPCB.ECDV._Q66, AE_AML_NOT_OWNER (20180531/psparse-516)
[170087.774236] pcieport 0000:00:1c.0: AER: Corrected error received: 0000:00:1c.0
[170087.774249] pcieport 0000:00:1c.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, (Receiver ID)
[170087.774262] pcieport 0000:00:1c.0:   device [8086:9d10] error status/mask=00000001/00002000
[170087.774271] pcieport 0000:00:1c.0:    [ 0] Receiver Error         (First)
[170093.297017] ACPI Error: Thread 1783148288 cannot release Mutex [PATM] acquired by thread 2842564480 (20180531/exmutex-382)
[170093.297037] No Local Variables are initialized for Method [_Q66]
[170093.297041] No Arguments are initialized for method [_Q66]
[170093.297044] ACPI Error: Method parse/execution failed \_SB.PCI0.LPCB.ECDV._Q66, AE_AML_NOT_OWNER (20180531/psparse-516)
[170099.150553] ACPI Error: Thread 1783148288 cannot release Mutex [PATM] acquired by thread 2842564480 (20180531/exmutex-382)
[170099.150564] No Local Variables are initialized for Method [_Q66]
[170099.150566] No Arguments are initialized for method [_Q66]
[170099.150568] ACPI Error: Method parse/execution failed \_SB.PCI0.LPCB.ECDV._Q66, AE_AML_NOT_OWNER (20180531/psparse-516)
[170105.017874] ACPI Error: Thread 1783148288 cannot release Mutex [PATM] acquired by thread 2842564480 (20180531/exmutex-382)
[170105.017900] No Local Variables are initialized for Method [_Q66]
[170105.017904] No Arguments are initialized for method [_Q66]
[170105.017908] ACPI Error: Method parse/execution failed \_SB.PCI0.LPCB.ECDV._Q66, AE_AML_NOT_OWNER (20180531/psparse-516)
[170109.670720] pcieport 0000:00:1c.0: AER: Corrected error received: 0000:00:1c.0
[170109.670733] pcieport 0000:00:1c.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, (Receiver ID)
[170109.670745] pcieport 0000:00:1c.0:   device [8086:9d10] error status/mask=00000001/00002000
[170109.670754] pcieport 0000:00:1c.0:    [ 0] Receiver Error         (First)
[171544.772953] wlp60s0: deauthenticating from 70:3a:cb:f4:a8:65 by local choice (Reason: 3=DEAUTH_LEAVING)
[171545.184378] ACPI Error: Thread 1783148288 cannot release Mutex [PATM] acquired by thread 2842564480 (20180531/exmutex-382)
[171545.184389] No Local Variables are initialized for Method [_Q66]
[171545.184390] No Arguments are initialized for method [_Q66]
[171545.184392] ACPI Error: Method parse/execution failed \_SB.PCI0.LPCB.ECDV._Q66, AE_AML_NOT_OWNER (20180531/psparse-516)
Comment 13 Jerezano 2018-11-17 08:19:44 UTC
Hello
I notice the same ACPI error in the logs of my dell latitude E7450 with the same DSDT;

     Method (_Q66, 0, NotSerialized)  // _Qxx: EC Query
            {
                Acquire (PATM, 0x0064)
                If ((ECRD == One))
                {
                    NEVT ()
                }

                Release (PATM)
                Return (Zero)
            }

This is what I did to solve it on my laptop ;

1.- Boot with kernel parameter "acpi_no_auto_serialize"
    After that, I was getting the following error after closing my laptop;

Nov 16 16:04:29 latitude-e7450 kernel: [   82.226066] ACPI BIOS Error (bug): Failure creating [\_SB.LID0._LID.LGPI], AE_ALREADY_EXISTS (20180531/dswload2-316)
Nov 16 16:04:29 latitude-e7450 kernel: [   82.226076] 
Nov 16 16:04:29 latitude-e7450 kernel: [   82.226076] Initialized Local Variables for Method [_LID]:
Nov 16 16:04:29 latitude-e7450 kernel: [   82.226077]   Local0: 00000000d76eef11 <Obj>           Integer 0000000000000000
Nov 16 16:04:29 latitude-e7450 kernel: [   82.226082]   Local1: 00000000e83aecb4 <Obj>           Integer 0000000000001E90
Nov 16 16:04:29 latitude-e7450 kernel: [   82.226086] No Arguments are initialized for method [_LID]
Nov 16 16:04:29 latitude-e7450 kernel: [   82.226087] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20180531/psobject-221)
Nov 16 16:04:29 latitude-e7450 kernel: [   82.226091] ACPI Error: Method parse/execution failed \_SB.LID0._LID, AE_ALREADY_EXISTS (20180531/psparse-516)
Nov 16 16:04:29 latitude-e7450 kernel: [   82.226097] ACPI: Marking method _LID as Serialized because of AE_ALREADY_EXISTS error

Which indicated that the ACPI method with the problem was the LID!

2.- Removed "acpi_no_auto_serialize" and added "button.lid_init_state=ignore"
I did try =method =open but the =ignore solved my issue!

Hope helps someone!
Comment 14 Patrik Kullman 2018-11-21 09:15:19 UTC
Thanks for this info!

What effect does this setting have? No side effects in other aspects?
Comment 15 Jerezano 2018-11-21 20:28:41 UTC
Well the issue itself does not affect any operation that I notice beside the error log message, and the setting "button.lid_init_state=ignore" in my case does not bring any side effects.