http://bugzilla.kernel.org/show_bug.cgi?id=15174

           Summary: powernow-k8: _PSS sanity check prevents CPU clock
                    scaling
           Product: ACPI
           Version: 2.5
    Kernel Version: 2.6.30
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Config-Tables
        AssignedTo: acpi_config-tab...@kernel-bugs.osdl.org
        ReportedBy: h...@mimosa.com
                CC: h...@mimosa.com
        Regression: Yes


Created an attachment (id=24785)
 --> (http://bugzilla.kernel.org/attachment.cgi?id=24785)
dmesg output from 2.6.18-128.7.1.el5 -- scaling worked

[Originally reported https://bugzilla.redhat.com/show_bug.cgi?id=559357 and
https://www.centos.org/modules/newbb/viewtopic.php?viewmode=flat&topic_id=22341&forum=44]

A new sanity check was added to linux/drivers/acpi/processor_perflib.c
acpi_processor_get_performance_states.  The commit is
34d531e640cb805973cf656b15c716b961565cea "ACPI: sanity check _PSS frequency to
prevent cpufreq crash"

This new check says that if any _PSS table freq entry is impossibly large (i.e.
the frequency, expressed in kHz, would not fit in a u32), the whole table will
be ignored.

Unfortunately, my machine's BIOS has some such entries.  It also has sane
entries.  Before the patch, my system was stable and could do CPU frequency
scaling.  After the patch, my system cannot do CPU frequency scaling.

These crazy _PSS values used to be ignored without ignoring the reasonable
ones.  The ignoring was done in several routines in cpu/cpufreq/powernow-k8.c,
but not acpi_processor_get_performance_states.  The patch must have been made
because bad values were not ignored somewhere imporant.

My machine is an HP Pavilion a530n with a stock 3.11 BIOS (the latest on HP's
support page; dated September 2004).  The machine has worked well in Linux all
the years since then.
http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=pv-22976-2&lc=en&dlc=en&cc=ca&lang=en&os=228&product=404646

My system runs CentOS x86_64 kernels.  The problem appeared in the transition
from kernel-2.6.18-128.7.1.el5 to kernel-2.6.18-164.el5.  I have tracked it
down to the commit that was accepted in the Mainline 2.6.30.

My hope would be that the sanity checker could be changed to reject bad table
entries but preserve any good ones.

Without the patch, dmesg shows:

powernow-k8: Pre-initialization of ACPI failed
powernow-k8: Found 1 AMD Athlon(tm) 64 Processor 3200+ processors (1 cpu cores)
(version 2.20.00)
powernow-k8: invalid freq entries 3300000 kHz vs. 2147483048 kHz
powernow-k8: invalid freq entries 3300000 kHz vs. 2147483048 kHz
powernow-k8: 0 : fid 0xc (2000 MHz), vid 0x2
powernow-k8: 1 : fid 0xa (1800 MHz), vid 0x6
powernow-k8: 2 : fid 0x0 (800 MHz), vid 0xa
powernow-k8: ph2 null fid transition 0xc

With the patch:

powernow-k8: Pre-initialization of ACPI failed
powernow-k8: Found 1 AMD Athlon(tm) 64 Processor 3200+ processors (1 cpu cores)
(version 2.20.00)
ACPI: Invalid BIOS _PSS frequency: 0x9999999 MHz
powernow-k8: BIOS error: maxvid exceeded with pstate 2

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to