All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@us.ibm.com>
To: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Thomas Renninger <trenn@suse.de>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@elte.hu>,
	cpufreq@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: Re: [PATCH v2] acpi: Fix regression where _PPC is not read at boot even when ignore_ppc=0
Date: Wed, 29 Apr 2009 14:39:31 -0700	[thread overview]
Message-ID: <20090429213930.GE6968@plum> (raw)
In-Reply-To: <20090428195348.GA8376@srcf.ucam.org>

On Tue, Apr 28, 2009 at 08:53:48PM +0100, Matthew Garrett wrote:
> On Tue, Apr 28, 2009 at 12:33:04PM -0700, Darrick J. Wong wrote:
> > On Thu, Apr 16, 2009 at 11:45:07PM +0100, Matthew Garrett wrote:
> > 
> > > That's not really an option. It works with Windows.
> > 
> > Who verified that?  Does anyone know what strategy Windows uses to avoid this
> > T60 problem?  
> 
> The best guess was that Windows only evaluates _PPC when it receives a 
> notification.

Here's the answer from the Windows side of the house:

Windows (both WS03 and WS08) will evaluate the _PPC method during boot 
once the intelppm.sys processor driver loads.  The processor driver will 
"evaluate" the _PPC method:

IntelPPM.sys: 0: Entering AcpiEval_PPC
IntelPPM.sys: 0: Entering AcpiEvaluateMethod
=0x0
AMLI: EvalObject(\_PR.C000._PPC)=Integer(:Value=0x0[0])

The Windows intelppm.sys driver can return non-zero for the _PPC method 
(in this example, _PPC returns non-zero based on what's stored in \_PTSE 
and \_TSTE named objects that were updated during POST.  The capture is 
during Windows boot when evaluating the ACPI P-State objects for each 
ProcessorId object):

....
IntelPPM.sys: Processor Performance States (0x85DF7DF0)
IntelPPM.sys:   Size:              0x210
IntelPPM.sys:   Revision:          0x1
IntelPPM.sys:   Type:              0xfe
IntelPPM.sys:   Count:             0xf
IntelPPM.sys:   MaxFrequency:      2394 mhz
IntelPPM.sys:   PState Handler:    0x88fb7006
IntelPPM.sys:   PState Context:    0x85d74298
IntelPPM.sys:   PState Cap:        0x3          <= PTSE (test: hardcoded 
PTSE to return something other than P[0])
IntelPPM.sys:   TState Handler:    0x88fb7048
IntelPPM.sys:   TState Context:    0x85d742c0
IntelPPM.sys:   TState Cap:        0x4          <= TSTE (test: hardcoded 
TSTE to return something other than T[0])
IntelPPM.sys:   Feedback Handler:  0x88fb7084
IntelPPM.sys:   Target Processors: 0xff
IntelPPM.sys:
IntelPPM.sys:   State   Speed           Power           Latency Control 
Status
IntelPPM.sys:   -----   -----           -----           ------- ------- 
------
IntelPPM.sys:   0:      2394 mhz        106000 mW       10 us   0x12 0x12 
// P[0]
IntelPPM.sys:   1:      2261 mhz        90000 mW        10 us   0x11 0x11
IntelPPM.sys:   2:      2128 mhz        74000 mW        10 us   0x10 0x10
IntelPPM.sys:   3:      1995 mhz        58000 mW        10 us   0xf 0xf // 
PTSE
IntelPPM.sys:   4:      1862 mhz        42000 mW        10 us   0xe 0xe 
IntelPPM.sys:   5:      1729 mhz        26000 mW        10 us   0xd 0xd
IntelPPM.sys:   6:      1596 mhz        10000 mW        10 us   0xc 0xc
IntelPPM.sys:   7:      1596 mhz        10000 mW        0 us    0x2 0x2
IntelPPM.sys:   8:      1404 mhz         8750 mW        0 us    0x1e 0x1e 
// T[0]
IntelPPM.sys:   9:      1197 mhz         7500 mW        0 us    0x1c 0x1c
IntelPPM.sys:   10:     1005 mhz         6250 mW        0 us    0x1a 0x1a
IntelPPM.sys:   11:      798 mhz         5000 mW        0 us    0x18 0x18
IntelPPM.sys:   12:      606 mhz         3750 mW        0 us    0x16 0x16 
// TSTE
IntelPPM.sys:   13:      399 mhz         2500 mW        0 us    0x14 0x14
IntelPPM.sys:   14:      207 mhz         1250 mW        0 us    0x12 0x12
IntelPPM.sys:
....


0: kd> !amli dns /s \TSTE

ACPI Name Space: \TSTE (ffffffff854e484c)
Integer(TSTE:Value=0x0000000000000004[4])

0: kd> !amli dns /s \PSTE

ACPI Name Space: \PSTE (ffffffff854e4898)
Integer(PSTE:Value=0x0000000000000003[3])

Note the two above dbg traces are from different systems.

(end reply)

I don't know about XP's copy of intelppm.sys, but this would seem to confirm
that WS03 and WS08 check _PPC at boot time.

--D

  parent reply	other threads:[~2009-04-29 21:39 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-15 22:53 [PATCH] acpi: Fix regression where _PPC is not read at boot even when ignore_ppc=0 Darrick J. Wong
2009-04-16  0:27 ` [PATCH v2] " Darrick J. Wong
2009-04-16 10:01   ` Thomas Renninger
2009-04-16 10:32     ` Ingo Molnar
2009-04-16 17:42     ` Darrick J. Wong
2009-04-16 18:49       ` Thomas Renninger
2009-04-16 22:45       ` Matthew Garrett
2009-04-20  5:13         ` Len Brown
2009-04-20  9:13           ` Thomas Renninger
2009-04-20 10:45             ` Ingo Molnar
2009-04-29 13:19               ` Thomas Renninger
2009-04-29 13:19                 ` Thomas Renninger
2009-04-29 14:48                 ` Ingo Molnar
2009-04-29 21:43                 ` Darrick J. Wong
2009-04-30  9:07                   ` Thomas Renninger
2009-04-30  9:17                     ` Ingo Molnar
2009-04-20 22:18             ` Henrique de Moraes Holschuh
2009-04-28 19:33         ` Darrick J. Wong
2009-04-28 19:53           ` Matthew Garrett
2009-04-28 20:24             ` Darrick J. Wong
2009-04-29 21:39             ` Darrick J. Wong [this message]
2009-04-29 22:00               ` Matthew Garrett
2009-04-30  7:25                 ` Ingo Molnar
2009-04-30  9:54                   ` Matthew Garrett
2009-04-30 11:10                     ` Ingo Molnar
2009-04-30 11:13                       ` Matthew Garrett
2009-05-15 19:12                         ` Darrick J. Wong
2009-06-02 23:21                           ` Darrick J. Wong
2009-06-07 10:05                             ` Ingo Molnar
2009-07-15  0:32                               ` Darrick J. Wong
2010-02-16 22:07                                 ` Matthew Garrett
2010-02-16 22:26                                   ` Darrick J. Wong
2010-02-18  9:02                                     ` Len Brown
2010-02-18 18:28                                       ` Darrick J. Wong
2010-02-19  6:12                                         ` Len Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090429213930.GE6968@plum \
    --to=djwong@us.ibm.com \
    --cc=cpufreq@vger.kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mjg59@srcf.ucam.org \
    --cc=trenn@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.