http://bugzilla.kernel.org/show_bug.cgi?id=14668

           Summary: Resume from disk hangs in acpi_ex_acquire_global_lock
           Product: ACPI
           Version: 2.5
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: EC
        AssignedTo: acpi...@kernel-bugs.osdl.org
        ReportedBy: maximlevit...@gmail.com
                CC: r...@sisk.pl
        Regression: No


I found out that my system will occasionally fail when resuming from
hibernation.
Common denominator was that attempt to acquire global acpi lock failed.

According to the source, this lock is only used on access to fields of
'OperationRegion's that have 'Lock' attribute, or in other simpler words, this
lock protects access to device registers.

My notebook has:

    OperationRegion (NVST, SystemMemory, 0x7FEBCE89, 0x00000063)
    Field (NVST, AnyAcc, Lock, Preserve)

    OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
    Field (RCRB, DWordAcc, Lock, Preserve)

    OperationRegion (ERAM, EmbeddedControl, 0x00, 0xFF)
    Field (ERAM, ByteAcc, Lock, Preserve)


NVST is in memory, containing some bios flags. It is used in some places.
RCRB is a BAR of southbridge, and used I think for pcie hotplug.
I know that because I mapped all unknown memory ranges using intel docs.
(Southbridge/LPC configuration (Root Complex Base Address))

I don't thing that access to these registers hangs in the middle.


However, the last third register, looks very suspicions, 'cause its the EC.
In fact system hangs, while it tries to read from this range.
But it hangs because it can't take the lock, and I suspect that this is due to
access to same range.

So, ether global lock isn't released during suspend, or first attempt to touch
EC stalls.

Note that I don't see EC GPE storms warning anymore lately, so EC operates in
interrupt mode.


For testing, I removed this global lock, and then I did ~230 s2disk cycles,
using /sys/power/disk directly, and 'reboot' method.

Then, I did the full test that is ~130 cycles using 'platform' method,
pm_hibernate, and using rtc alarm to wake the system. 

I couldn't make the system hang.

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to