All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Renninger <trenn@suse.de>
To: djwong@us.ibm.com
Cc: 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: Thu, 16 Apr 2009 20:49:26 +0200	[thread overview]
Message-ID: <200904162049.27588.trenn@suse.de> (raw)
In-Reply-To: <20090416174217.GY8311@plum>

On Thursday 16 April 2009 19:42:18 Darrick J. Wong wrote:
> On Thu, Apr 16, 2009 at 12:01:11PM +0200, Thomas Renninger wrote:
> > Hi,
> > 
> > be careful, this could break the T60 again.
> 
> So long as T60 owners boot with ignore_ppc=1, they should still be fine.
That would be a regression :)
But as said, I hope with Yakui's patch and your patch,
everything might work out fine for everyone.
Let me send a cleanup on top (your's is in already if I understood Ingo correctly)
in some days and people with affected machines should give it a try.
 
> > Can you and Ingo place acpidump of your machines somewhere, please.
> > 
> > On Thursday 16 April 2009 02:27:12 Darrick J. Wong wrote:
> > > Earlier, Ingo Molnar posted a patch to make it so that the kernel would avoid
> > > reading _PPC on his broken T60.  Unfortunately, it seems that with Thomas
> > > Renninger's patch last July to eliminate _PPC evaluations when the processor
> > > driver loads, the kernel never actually reads _PPC at all!
> > This is wrong. _PPC is only evaluated when a cpufreq driver got registered.
> 
> I put a printk just before the call to acpi_evaluate_integer in
> acpi_processor_get_platform_limit.  The printk did not appear unless (a)
> I triggered the Notify event to get the kernel to reevaluate _PPC or (b)
> I took a CPU offline and online.
> 
> An alternate way to describe the situation, I think, is that ignore_ppc
> doesn't go from -1 to 0 until acpi_processor_ppc_notifier gets called,
> and that only seems to happen during an ACPI Notify event.
> 
> > > This is problematic
> > > if you happen to boot your non-T60 computer in a state where the BIOS _wants_
> > > _PPC to be something other than zero.
> > Your machine should suffer from that since Ingo's T60 patch?
> 
> Yes, but the particular machine I have didn't exist until a couple of
> weeks ago, and before that our BIOSes were written so that _PPC always
> returned zero, which masked the problem.
> 
> The _PPC method in this (preproduction) machine's BIOS also sets a flag
> that enables the sending of _PPC Notify events.
Oh dear, I hope this is not for specific Windows OSes.

> I'm not sure if that's
> the proper way to do such things, though it seems logical that if an OS
> never reads _PPC then sending Notify events for it is pointless.
No it's not.
There is the _PDC call which the OS calls and tells the BIOS that it
has a cpufreq driver. I expect (hope) from this point on (when OS called this
function and told the BIOS that it can do cpufreq) the T60 does
return a sane (zero) _PPC value.
That was what my patch was doing in an ugly way. Making sure cpufreq drivers
were loaded first (and _PDC was called), before any _PPC notifications
are evaluated.
But Yakui's patch moved ACPI function calls in a way, that calling _PDC
is done before _PPC. So everybody (with your patch added) could be happy
in the end.
 
> > Reading the _PPC part of the ACPI spec again:
> > ---
> > In order to support dynamic changes of _PPC object, Notify events on
> > the processor object. Notify events of type 0x80 will cause OSPM to
> > reevaluate any _PPC objects residing under the particular processor object
> > notified.
> > ---
> > The *reevaluate* implies that the _PPC value has been evaluated/initialized
> > by the OS already and Ingo's patch would be wrong then.
> > I'd like to have a look at the T60's ACPI parts and find out what exactly
> > (or if at all) makes _PPC to return sane values, I expect it's _PDC.
> 
> I recall that on the T60 BIOS, the _PPC was programmed to read the value
> out of some register in the embedded controller, but I'll have to go
> find a T60 to see what the latest BIOSes do.  There's nothing in the T60
> BIOS update changelogs to indicate that they found and corrected a
> problem with _PPC... but that doesn't eliminate the possibility that
> they "forgot" to document one.
> 
> Though I do recall seeing some weird bug with that T60 where putting the
> machine to sleep would confuse it into "1ghz only" mode, though I never
> noticed this symptom after a fresh boot.
Yeah, really weird things can happen on really weird (and tons of different)
BIOS implementations.

    Thomas
> 
> > Hmm, I could also imagine that Ingo's T60 patch is not needed anymore since
> > Yakui's patch (0ac3c571315a53c14d2733564f14ebdb911fe903).
> > This one could make sure that _PDC is evaluated first making the internal
> > ACPI _PPC state initialize and makes sure _PPC gets only called afterwards.
> > 
> > If this patch does not break Ingo's T60, I think this should go in.
> > Due to Yakui's reordering/cleanup of ACPI function calls, I think also
> > the notifier chain I introduced is not needed anymore and I can clean this
> > up if I find some time.
> 
> > You are more or less reverting Ingo's patch (e4233dec749a3519069d9390561b5636a75c7579):
> 
> Yes, but preserving the ignore_ppc=1 override.


  reply	other threads:[~2009-04-16 18:49 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 [this message]
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
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=200904162049.27588.trenn@suse.de \
    --to=trenn@suse.de \
    --cc=cpufreq@vger.kernel.org \
    --cc=djwong@us.ibm.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    /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.