aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/cpufreq.c
diff options
context:
space:
mode:
authorVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>2005-12-02 13:43:20 -0500
committerDave Jones <davej@redhat.com>2005-12-06 22:35:11 -0500
commit95235ca2c20ac0b31a8eb39e2d599bcc3e9c9a10 (patch)
treecdfbebe72a1563f1bfe16b0335da7f9ecb78a91d /drivers/cpufreq/cpufreq.c
parent9a7d82a89a8bf55b112f2a5c3b3f405eb95a4303 (diff)
[CPUFREQ] CPU frequency display in /proc/cpuinfo
What is the value shown in "cpu MHz" of /proc/cpuinfo when CPUs are capable of changing frequency? Today the answer is: It depends. On i386: SMP kernel - It is always the boot frequency UP kernel - Scales with the frequency change and shows that was last set. On x86_64: There is one single variable cpu_khz that gets written by all the CPUs. So, the frequency set by last CPU will be seen on /proc/cpuinfo of all the CPUs in the system. What you see also depends on whether you have constant_tsc capable CPU or not. On ia64: It is always boot time frequency of a particular CPU that gets displayed. The patch below changes this to: Show the last known frequency of the particular CPU, when cpufreq is present. If cpu doesnot support changing of frequency through cpufreq, then boot frequency will be shown. The patch affects i386, x86_64 and ia64 architectures. Signed-off-by: Venkatesh Pallipadi<venkatesh.pallipadi@intel.com> Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'drivers/cpufreq/cpufreq.c')
-rw-r--r--drivers/cpufreq/cpufreq.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 815902c2c856..a9163d02983a 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -823,6 +823,30 @@ static void cpufreq_out_of_sync(unsigned int cpu, unsigned int old_freq, unsigne
823 823
824 824
825/** 825/**
826 * cpufreq_quick_get - get the CPU frequency (in kHz) frpm policy->cur
827 * @cpu: CPU number
828 *
829 * This is the last known freq, without actually getting it from the driver.
830 * Return value will be same as what is shown in scaling_cur_freq in sysfs.
831 */
832unsigned int cpufreq_quick_get(unsigned int cpu)
833{
834 struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
835 unsigned int ret = 0;
836
837 if (policy) {
838 down(&policy->lock);
839 ret = policy->cur;
840 up(&policy->lock);
841 cpufreq_cpu_put(policy);
842 }
843
844 return (ret);
845}
846EXPORT_SYMBOL(cpufreq_quick_get);
847
848
849/**
826 * cpufreq_get - get the current CPU frequency (in kHz) 850 * cpufreq_get - get the current CPU frequency (in kHz)
827 * @cpu: CPU number 851 * @cpu: CPU number
828 * 852 *