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 12:01:11 +0200 [thread overview]
Message-ID: <200904161201.13409.trenn@suse.de> (raw)
In-Reply-To: <20090416002712.GX8311@plum>
Hi,
be careful, this could break the T60 again.
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.
> 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?
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.
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.
> So, put the _PPC evaluation back into acpi_processor_get_performance_info if
> ignore_ppc isn't 1.
>
> This second version restores the correct function call, which simplifies
> the patch. I apologize for the churn and the poor eyesight.
>
> Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
> ---
>
> drivers/acpi/processor_perflib.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
>
> diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
> index cafb410..85af717 100644
> --- a/drivers/acpi/processor_perflib.c
> +++ b/drivers/acpi/processor_perflib.c
> @@ -348,7 +348,11 @@ static int acpi_processor_get_performance_info(struct acpi_processor *pr)
> if (result)
> goto update_bios;
>
> - return 0;
> + /* We need to call _PPC once when cpufreq starts */
> + if (ignore_ppc != 1)
> + result = acpi_processor_get_platform_limit(pr);
> +
> + return result;
>
> /*
> * Having _PPC but missing frequencies (_PSS, _PCT) is a very good hint that
You are more or less reverting Ingo's patch (e4233dec749a3519069d9390561b5636a75c7579):
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 5207f9e..cbb6f08 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -322,10 +322,6 @@ static int acpi_processor_get_performance_info(struct acpi_processor *pr)
if (result)
return result;
- result = acpi_processor_get_platform_limit(pr);
- if (result)
- return result;
-
return 0;
}
Thomas
next prev parent reply other threads:[~2009-04-16 10:01 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 [this message]
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
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=200904161201.13409.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.