[PATCH] arm64: print cpu frequency in /proc/cpuinfo

Vinayak Kale vkale at apm.com
Mon Dec 16 00:13:29 EST 2013


On Fri, Dec 13, 2013 at 7:46 PM, Rob Herring <robherring2 at gmail.com> wrote:
> On Fri, Dec 13, 2013 at 4:36 AM, Will Deacon <will.deacon at arm.com> wrote:
>> On Fri, Dec 13, 2013 at 08:43:42AM +0000, Vinayak Kale wrote:
>>> Print the cpu frequency field in /proc/cpuinfo.
>>
>> Why? ["x86 does this" isn't a valid answer :)].
>
> People want to know this stuff. How about making lscpu work and print
> useful things. Here is what you get on x66. You get a lot less on ARM
> IIRC. lscpu uses on cpuinfo and sysfs data. The cache info is based on
> sysfs cache data which I believe someone is working on for ARM.
>
> Architecture:          x86_64
> CPU op-mode(s):        32-bit, 64-bit
> Byte Order:            Little Endian
> CPU(s):                4
> On-line CPU(s) list:   0-3
> Thread(s) per core:    2
> Core(s) per socket:    2
> Socket(s):             1
> NUMA node(s):          1
> Vendor ID:             GenuineIntel
> CPU family:            6
> Model:                 37
> Stepping:              5
> CPU MHz:               2393.881
> BogoMIPS:              4787.76
> Virtualization:        VT-x
> L1d cache:             32K
> L1i cache:             32K
> L2 cache:              256K
> L3 cache:              3072K
> NUMA node0 CPU(s):     0-3
>
>
>>> Signed-off-by: Vinayak Kale <vkale at apm.com>
>>> ---
>>>  arch/arm64/kernel/setup.c |   15 +++++++++++++++
>>>  1 files changed, 15 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
>>> index bd9bbd0..bca982b 100644
>>> --- a/arch/arm64/kernel/setup.c
>>> +++ b/arch/arm64/kernel/setup.c
>>> @@ -41,6 +41,7 @@
>>>  #include <linux/memblock.h>
>>>  #include <linux/of_fdt.h>
>>>  #include <linux/of_platform.h>
>>> +#include <linux/cpufreq.h>
>>>
>>>  #include <asm/cputype.h>
>>>  #include <asm/elf.h>
>>> @@ -278,9 +279,19 @@ static const char *hwcap_str[] = {
>>>       NULL
>>>  };
>>>
>>> +static unsigned int get_cpufreq_khz(unsigned int cpu)
>>> +{
>>> +#ifdef CONFIG_CPU_FREQ
>>> +     return cpufreq_quick_get(cpu);
>>> +#else
>>> +     return 0;
>>> +#endif
>>> +}
>>
>> That's going to be hilarious fun when cpufreq isn't compiled in.
>> Just use the existing sysfs interfaces exposed by the cpufreq governers if
>> you need to know this stuff.
>
> We should be able to get the frequency independently from cpufreq
> being enabled. This should come from DT cpu clock-frequency property
> if cpufreq is not enabled.

Reading cpu-freq from DT won't work in case of cpu frequency scaling.

>
> Rob



More information about the linux-arm-kernel mailing list