From: Len Brown <lenb@kernel.org>
To: trenn@suse.de
Cc: Stable <Stable@kernel.org>,
linux-acpi <linux-acpi@vger.kernel.org>,
Dave Jones <davej@redhat.com>,
mingo@elte.hu
Subject: Re: [Fwd: Fwd: [patch] ACPI: fix cpufreq regression]
Date: Tue, 23 Jan 2007 23:52:20 -0500 [thread overview]
Message-ID: <200701232352.21075.lenb@kernel.org> (raw)
In-Reply-To: <1169568986.18157.194.camel@d36.suse.de>
Acked-by: Len Brown <len.brown@intel.com>
On Tuesday 23 January 2007 11:16, Thomas Renninger wrote:
> Can this one also be added to 2.6.19.X kernel.
> Beside the Thinkpad it also seems to fix other system:
> http://bugzilla.kernel.org/show_bug.cgi?id=7859
>
>
> Thanks,
>
> Thomas
>
> -------- Forwarded Message --------
> From: Len Brown <lenb@kernel.org>
> To: linux-acpi@vger.kernel.org
> Subject: Fwd: [patch] ACPI: fix cpufreq regression
> Date: Tue, 16 Jan 2007 22:13:14 -0500
>
> > nobody else with a T60 noticed this since November?
>
> I expect it's because the patch which caused the regression,
> seemed to be rather safe and came in quite late...
>
>
>
> ---------- Forwarded Message ----------
>
> Subject: [patch] ACPI: fix cpufreq regression
> Date: Tuesday 16 January 2007 12:09
> From: Ingo Molnar <mingo@elte.hu>
> To: Andrew Morton <akpm@osdl.org>
> Cc: linux-kernel@vger.kernel.org, Dave Jones <davej@redhat.com>, Linus Torvalds <torvalds@osdl.org>, Len Brown <lenb@kernel.org>
>
> Subject: [patch] ACPI: fix cpufreq regression
> From: Ingo Molnar <mingo@elte.hu>
>
> recently cpufreq support on my laptop (Lenovo T60) broke completely:
> when it's plugged into AC it would never go higher than 1 GHz - neither
> 1.3 GHz nor 1.83 GHz is possible - no matter which governor (userspace,
> speed or ondemand) is used.
>
> after some cpufreq debugging i tracked the regression back to the
> following (totally correct) bug-fix commit:
>
> commit 0916bd3ebb7cefdd0f432e8491abe24f4b5a101e
> Author: Dave Jones <davej@redhat.com>
> Date: Wed Nov 22 20:42:01 2006 -0500
>
> [PATCH] Correct bound checking from the value returned from _PPC method.
>
> this bugfix, which makes other laptops work, made a previously hidden
> (BIOS) bug visible on my laptop.
>
> The bug is the following: if the _PPC (Performance Present Capabilities)
> optional ACPI object is queried /after/ bootup then the BIOS reports an
> incorrect value of '2'.
>
> My laptop (Lenovo T60) has the following performance states supported:
>
> 0: 1833000
> 1: 1333000
> 2: 1000000
>
> Per ACPI specification, a _PPC value of '0' means that all 3 performance
> states are usable. A _PPC value of '1' means states 1 .. 2 are usable, a
> value of '2' means only state '2' (slowest) is usable.
>
> now, the _PPC object is optional, and it also comes with notification.
> Furthermore, when a CPU object is initialized, the _PPC object is
> initialized as well. So the following evaluation of the _PPC object is
> superfluous:
>
> [<c028ba5f>] acpi_processor_get_platform_limit+0xa1/0xaf
> [<c028c040>] acpi_processor_register_performance+0x3b9/0x3ef
> [<c0111a85>] acpi_cpufreq_cpu_init+0xb7/0x596
> [<c03dab74>] cpufreq_add_dev+0x160/0x4a8
> [<c02bed90>] sysdev_driver_register+0x5a/0xa0
> [<c03d9c4c>] cpufreq_register_driver+0xb4/0x176
> [<c068ac08>] acpi_cpufreq_init+0xe5/0xeb
> [<c010056e>] init+0x14f/0x3dd
>
> and this is the point where my laptop's BIOS returns the incorrect value
> of '2'. Note that it has not sent any notification event, so the value
> is probably not really intentional (possibly spurious), and Windows
> likely doesnt query it after bootup either. Maybe the value is kept at
> '2' normally, and is only set to the real value when a true asynchronous
> event (such as AC plug event, battery switch, etc.) occurs.
>
> So i /think/ this is a grey area of the ACPI spec: per the letter of the
> spec the _PPC value only changes when notified, so there's no reason to
> query it after the system has booted up. So in my opinion the best (and
> most compatible) strategy would be to do the change below, and to not
> evaluate the _PPC object in the acpi_processor_get_performance_info()
> call, but only evaluate it if _PPC is present during CPU object init, or
> if it's notified during an asynchronous event. This change is more
> permissive than the previous logic, so it definitely shouldnt break any
> existing system.
>
> This also happens to fix my laptop, which is merrily chugging along at
> 1.83 GHz now. Yay!
>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
> ---
> drivers/acpi/processor_perflib.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> Index: linux/drivers/acpi/processor_perflib.c
> ===================================================================
> --- linux.orig/drivers/acpi/processor_perflib.c
> +++ linux/drivers/acpi/processor_perflib.c
> @@ -322,10 +322,6 @@ static int acpi_processor_get_performanc
> if (result)
> return result;
>
> - result = acpi_processor_get_platform_limit(pr);
> - if (result)
> - return result;
> -
> return 0;
> }
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
>
> -------------------------------------------------------
> -
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
prev parent reply other threads:[~2007-01-24 4:53 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-23 16:16 [Fwd: Fwd: [patch] ACPI: fix cpufreq regression] Thomas Renninger
2007-01-24 4:52 ` Len Brown [this message]
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=200701232352.21075.lenb@kernel.org \
--to=lenb@kernel.org \
--cc=Stable@kernel.org \
--cc=davej@redhat.com \
--cc=linux-acpi@vger.kernel.org \
--cc=mingo@elte.hu \
--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).