Bug 10062 - cpufreq scaling for via c3 no longer works
Summary: cpufreq scaling for via c3 no longer works
Status: CLOSED WILL_NOT_FIX
Alias: None
Product: Power Management
Classification: Unclassified
Component: cpufreq (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: cpufreq
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-02-21 15:27 UTC by Rolf Leggewie
Modified: 2011-03-03 01:19 UTC (History)
5 users (show)

See Also:
Kernel Version: Linux Rie 2.6.22-14-386 #1 Tue Dec 18 07:34:24 UTC 2007 i686 GNU
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Rolf Leggewie 2008-02-21 15:27:28 UTC
It seems the scaling for cpu scaling for VIA C3 CPUs has been missing from the Kernel for 2.6 kernels.  I am not exactly sure when this stopped working but I believe it was between the 2.4 and 2.6 switch.  Let me know if there is anything I can do to provide further information.  I am not always sure where to look.  I'd be happy to compile new kernels for testing anytime.
Comment 1 Dave Jones 2008-02-25 13:54:23 UTC
It's still there (CONFIG_X86_LONGHAUL).  From the version number it looks like you're running a vendor kernel ?
Vendor kernels typically disable this module because it isn't very stable on some systems.  It works fine for some people, but for others they see lockups after a while.
Comment 2 Rolf Leggewie 2008-03-07 03:34:27 UTC
Dave, thank you for your comment.  I have been enduring this problem for quite some time, trying out all kinds of different things in the process.  While you are right that normally I run a vendor-supplied kernel, I did test this with a couple of self-compiled kernels, too.  I'll try to do this again as soon as possible, but I don't expect any changes.

# grep -i longhaul /boot/config-2.6.22-14-386 
CONFIG_X86_LONGHAUL=m
# modprobe longhaul
FATAL: Error inserting longhaul (/lib/modules/2.6.22-14-386/kernel/arch/i386/kernel/cpu/cpufreq/longhaul.ko): No such device
# grep -i longhaul /var/log/syslog
Mar  7 12:30:51 Rie kernel: [3705563.931789] longhaul: VIA C3 'Samuel' [C5A] CPU detected.  Longhaul v1 supported.
Mar  7 12:30:51 Rie kernel: [3705563.931925] longhaul: No ACPI support. Unsupported northbridge.

So, it looks like the module is there, but it does not work as expected.

https://bugs.launchpad.net/bugs/50431 has some more information.
Comment 3 Natalie Protasevich 2008-06-01 18:53:28 UTC
There was a commit that tried to deal with longhaul erratas:
commit 52a2638bff063acb28ba3355891c49cc240cc98b
Author: Rafal Bilski <rafalbilski@interia.pl>
Date:   Sun Oct 7 00:24:32 2007 -0700

    Longhaul: add auto enabled "revid_errata" option
    
    VIA C3 Ezra-T has RevisionID equal to 1, but it needs RevisionKey to be 0
    or CPU will ignore new frequency and will continue to work at old
    frequency.  New "revid_errata" option will force RevisionKey to be set to
    0, whatever RevisionID is.
    
    Additionaly "Longhaul" will not silently ignore unsuccessful transition.
    It will try to check if "revid_errata" or "disable_acpi_c3" options need to
    be enabled for this processor/system.
    
    Same for Longhaul ver.  2 support.  It will be disabled if none of above
    options will work.
    
     Best case scenario (with patch apllied and v2 enabled):
     longhaul: VIA C3 'Ezra' [C5C] CPU detected.  Longhaul v2 supported.
     longhaul: Using northbridge support.
     longhaul: VRM 8.5
     longhaul: Max VID=1.350  Min VID=1.050, 13 possible voltage scales
     longhaul: f: 300000 kHz, index: 0, vid: 1050 mV
     [...]
     longhaul: Voltage scaling enabled.
     Worst case scenario:
     longhaul: VIA C3 'Ezra-T' [C5M] CPU detected.  Powersaver supported.
     longhaul: Using northbridge support.
     longhaul: Using ACPI support.
     longhaul: VRM 8.5
     longhaul: Claims to support voltage scaling but min & max are both 1.250. Voltage scaling disabled
     longhaul: Failed to set requested frequency!
     longhaul: Enabling "Ignore Revision ID" option.
     longhaul: Failed to set requested frequency!
     longhaul: Disabling ACPI C3 support.
     longhaul: Disabling "Ignore Revision ID" option.
     longhaul: Failed to set requested frequency!
     longhaul: Enabling "Ignore Revision ID" option.

You can enable CPU_FREQ_DEBUG and place cpufreq.debug=2 for driver debug on the boot command line.
Comment 4 Alan 2008-09-24 04:15:37 UTC
Closing as no response
Comment 5 Rolf Leggewie 2008-09-26 02:34:48 UTC
Reopening.

What response are you looking for?  What's the open question even?
Comment 6 Rafa&#322; Bilski 2008-10-13 13:41:53 UTC
You have SiS northbridge. It probably doesn't have "stop BMDMA" bit. I can't be sure as the documentation for SiS chips isn't freely avalilable. I have docs for one and it doesn't have any useful bits.
Your BIOS doesn't support ACPI C3 state which could be used instead.
Sorry.
Comment 7 Rolf Leggewie 2008-10-13 15:16:18 UTC
(In reply to comment #0)
> It seems the scaling for cpu scaling for VIA C3 CPUs has been missing from
> the
> Kernel for 2.6 kernels.  I am not exactly sure when this stopped working

Rafal, thank you for your comment.  This used to work, so it cannot be a hardware problem.
Comment 8 Rolf Leggewie 2009-03-24 08:54:34 UTC
Alan, if you close the bug it would be common courtesy I think to at least leave a comment explaining things.
Comment 9 Alan 2009-04-08 09:52:48 UTC
It was already mostly explained in comment #6

The early VIA C3 CPU scaling is extremely tricky and problematic at hardware level so was dropped from the kernel for the problem cases rather than risk causing corruption.

Note You need to log in before you can comment on or make changes to this bug.