* Verify the frequency of a core
@ 2010-12-25 19:45 pradeep hettiarachchi
[not found] ` <BANLkTi=2qYcs-b77eYbtn8odGkpjDQkUpA@mail.gmail.com>
0 siblings, 1 reply; 2+ messages in thread
From: pradeep hettiarachchi @ 2010-12-25 19:45 UTC (permalink / raw)
To: kernelnewbies
Hi,
Here what I did:
I set the "performance" governor for one of the cores and "ondemand"
governor on an another core. Then I noticed that the cores have
different frequencies.
Based of the above observation on different processors, I have a
couple of questions.
1) When I tried to frequency-scale in a core i7 processor, it allows
me to set different governors for individual cores. As per to my
understanding, the processor has 4 physical cores and 2 hardware
threads per core. (totaling 8 cores altogether) This means, I should
not be able to set different frequencies in two adjacent cores (say
core 0 and core 1) as they both same hardware. My understanding is I
should not be able to set the individual core frequencies as explained
above.
2) When I played with Q6600 processor, I found that trough the
governor, I can set the individual core-frequency. But as per to the
literature, Intel does not provide a facility to frequency-scale in
individual cores but the frequency in the entire processor.
3) What does the governor do? Does it set the frequency of the core directly ?
4) Is there any way that I can verify the actual frequency of a core
other than the interface of the governor. Do you recommend to use MSR
direly to change and measure the frequency of the system ?
Sincerely,
Pradeep M. Hettiarachchi
^ permalink raw reply [flat|nested] 2+ messages in thread
* Verify the frequency of a core
[not found] ` <BANLkTikv_--M6_TnhhLNt1XT8Pb3qrRT3Q@mail.gmail.com>
@ 2011-06-24 14:16 ` pradeep hettiarachchi
0 siblings, 0 replies; 2+ messages in thread
From: pradeep hettiarachchi @ 2011-06-24 14:16 UTC (permalink / raw)
To: kernelnewbies
Hi Tharindu,
Re: great effort, unfortunately what you mentioned does not verify the
required fact (In other words, (1) your method requests the governor
to do the frequency change request (FCR), (2) the governor ask the
driver to do the job (trace the kernel code path, you will understand
this). But internally, the CPU has single VID set, which request the
motherboard regulator to change the Vcc. Motherboard (DC-to-DC)
regulator does not have any way of setting different voltages for
individual cores simultaneously. So, different core frequencies are
not possible. However, (still I did not study the code), the scheduler
might take the assigned frequency (by the user) into account when it
schedule any task in the core (might be load balancing: to be
confirmed) still no multiple frequencies are possible ).
The informed frequency from sysfile is not accurate (the low lever
drivers are not even called when you ask governor (sysfiles) to read
the frequency): if you change the CPU frequency by other means (eg
using writing directly to MSR), your sysfiles does not catch it.
Have a look at low level implementation of frequency driver (they all
change the frequency of the processor using MSR- a set of registers
that specifically used to manage the CPU functionality and the
configuration)
So, if you want to verify that the CPU cores can stay in multiple
frequencies simultaneously, the best method is to change the frequency
by user-space governor and try to verify the frequency using direct
MSRs (I did that and found which is not possible). If you can
successfully show that, let me know.
Sincerely,
Pradeep M. Hettiarachchi
On Thu, Jun 23, 2011 at 9:52 PM, Tharindu Rukshan Bamunuarachchi
<btharindu@gmail.com> wrote:
> Hi Pradeep,
>
> Below commands will do the job.
>
> modprobe acpi-cpufreq
> modprobe cpufreq_userspace
>
> cd /sys/devices/system/cpu/cpu0/cpufreq
> echo userspace > scaling_governor
> echo 2394000 > scaling_setspeed
>
> cd /sys/devices/system/cpu/cpu1/cpufreq
> echo userspace > scaling_governor
> echo 2128000 > scaling_setspeed
>
> cd /sys/devices/system/cpu/cpu2/cpufreq
> echo userspace > scaling_governor
> echo 1862000 > scaling_setspeed
>
> cd /sys/devices/system/cpu/cpu3/cpufreq
> echo userspace > scaling_governor
> echo 1596000 > scaling_setspeed
>
> cat /proc/cpuinfo | grep MHz
> cpu MHz??? ??? : 2394.000
> cpu MHz??? ??? : 2128.000
> cpu MHz??? ??? : 1862.000
> cpu MHz??? ??? : 1596.000
>
> Tested on Q6600
> quadcore:~ # cat /proc/cpuinfo | grep GHz
> model name??? : Intel(R) Core(TM)2 Quad CPU??? Q6600? @ 2.40GHz
> model name??? : Intel(R) Core(TM)2 Quad CPU??? Q6600? @ 2.40GHz
> model name??? : Intel(R) Core(TM)2 Quad CPU??? Q6600? @ 2.40GHz
> model name??? : Intel(R) Core(TM)2 Quad CPU??? Q6600? @ 2.40GHz
>
>
> __
> Tharindu "Rukshan" Bamunuarachchi
>
>
>
>
>
>
> On Fri, Jun 24, 2011 at 3:17 AM, pradeep hettiarachchi <pacprnt@gmail.com>
> wrote:
>>
>> Hi Tharindu,
>>
>> An another round of the old questions:
>>
>> Can you give me any evidence to confirm that the core frequencies can
>> be run in different values from each other. You may try to do (set
>> individual core frequency values) it individually through any governor
>> or MSR methods. However, actually it does not implemented internally.
>> Please show/tell me if you have any methods to show that core
>> frequencies are different at any given time. (Take i7 950 or Q 6600
>> processors applicable approach so that I can verify it so easily)
>>
>>
>>
>>
>> Sincerely,
>>
>> Pradeep M. Hettiarachchi
>>
>>
>>
>> On Sat, Dec 25, 2010 at 2:45 PM, pradeep hettiarachchi
>> <pacprnt@gmail.com> wrote:
>> > Hi,
>> >
>> > Here what I did:
>> > I set the "performance" governor for one of the cores and "ondemand"
>> > governor on an another core. Then I noticed that the cores have
>> > different frequencies.
>> > Based of the above observation on different processors, I have a
>> > couple of questions.
>> >
>> > 1) When I tried to frequency-scale in a core i7 processor, it allows
>> > me to set different governors for individual cores. As per to my
>> > understanding, the processor has 4 physical cores and 2 hardware
>> > threads per core. (totaling 8 cores altogether) ?This means, I should
>> > not be able to set different frequencies in two adjacent cores (say
>> > core 0 and core 1) as they both same hardware. My understanding is I
>> > should not be able to set the individual core frequencies as explained
>> > above.
>> >
>> > 2) When I played with Q6600 processor, I found that trough the
>> > governor, I can set the individual core-frequency. But as per to the
>> > literature, Intel does not provide a facility to frequency-scale in
>> > individual cores but the frequency in the entire processor.
>> >
>> > 3) What does the governor do? Does it set the frequency of the core
>> > directly ?
>> >
>> > 4) Is there any way that I can verify the actual frequency of a core
>> > other than the interface of the governor. ?Do you recommend to use MSR
>> > direly to change and ?measure the frequency ?of the system ?
>> >
>> >
>> >
>> >
>> > Sincerely,
>> >
>> > Pradeep M. Hettiarachchi
>> >
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-06-24 14:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-25 19:45 Verify the frequency of a core pradeep hettiarachchi
[not found] ` <BANLkTi=2qYcs-b77eYbtn8odGkpjDQkUpA@mail.gmail.com>
[not found] ` <BANLkTikv_--M6_TnhhLNt1XT8Pb3qrRT3Q@mail.gmail.com>
2011-06-24 14:16 ` pradeep hettiarachchi
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).