So, there is a 500 ms poll on _PS0, polling on the state of \_SBI.INF
which I believe is a Systems Management Interface (SMI) state field:

    Name (FWSO, "FWSO")
    Name (_PSC, 0x00)  // _PSC: Power State Current
    Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
    {
        Store (_PSC, Local0)
        Store (0x00, _PSC) /* \_PSC */
        If (LEqual (Local0, 0x03))
        {
            Store (0x01, \_SB.INF)
            While (\_SB.INF)
            {
                Store (0x20, \_SB.BCMD)
                Store (Zero, \_SB.SMIC)

                If (LAnd (LEqual (\_SB.INF, 0x01), LGreaterEqual (\_SB.OSTB, 
0x04)))
                {
                    Sleep (0x01F4)
                }
            }
        }
    }

So it is plausible that every SMI may be producing a bunch of sleeps.

GPE L01 is also performing 2 x 100ms sleeps:

        Method (_L01, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
        {
            Store (0x01, DEBG) /* \DEBG */
            Sleep (0x64)
            Sleep (0x64)
            If (\_SB.PCI0.EXP1.HPCS)
            {
                If (\_SB.PCI0.EXP1.PDC1)
                {
                    Store (0x01, \_SB.PCI0.EXP1.PDC1)
                }

                If (\_SB.PCI0.EXP1.ABP1)
                {
                    Store (0x01, \_SB.PCI0.EXP1.ABP1)
                }

                Store (0x01, \_SB.PCI0.EXP1.HPCS)
                Notify (\_SB.PCI0.EXP1, 0x01) // Device Check
                If (\_SB.PCI0.EXP1.PDS1)
                {
                    Store (0x21, DEBG) /* \DEBG */
                    If (LEqual (\_SB.PCI0.EXP1.PXS1.X1DV, 0xFFFFFFFF))
                    {
                        Store (0x2F, DEBG) /* \DEBG */
                    }
                }
                Else
                {
                    Store (0x20, DEBG) /* \DEBG */
                }
            }
        }

And GPE L09 is performing a few 300 and 100ms sleeps:

        Method (_L09, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
        {
            Store (0x09, DEBG) /* \DEBG */
            Sleep (0x012C)
            Sleep (0x64)
            If (\_SB.PCI0.EXP1.PSP1)
            {
                Store (0x01, \_SB.PCI0.EXP1.PSP1)
                Store (0x01, \_SB.PCI0.EXP1.PMCS)
                Store (0x01, \_SB.PCI0.EXP1.PSP1)
                Notify (\_SB.PCI0.EXP1, 0x02) // Device Wake
            }

            If (\_SB.PCI0.EXP5.PSP5)
            {
                Store (0x01, \_SB.PCI0.EXP5.PSP5)
                Store (0x01, \_SB.PCI0.EXP5.PMCS)
                Notify (\_SB.PCI0.EXP5, 0x02) // Device Wake
            }
        }

..and these General Purpose Event handler are also performing some
occasional sleeps too. Once can see how often these GPEs are being
triggered using cat /sys/firmware/acpi/interrupts/gpe01
/sys/firmware/acpi/interrupts/gpe09

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1472293

Title:
  load >= 1 while idle for no obvious reason with ACPI

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1472293/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to