linux-kernel.vger.kernel.org archive mirror
 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: 34+ 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 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).