* TSC as clocksource
@ 2011-01-09 22:54 Rob
2011-01-10 13:44 ` Peter Zijlstra
0 siblings, 1 reply; 4+ messages in thread
From: Rob @ 2011-01-09 22:54 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 357 bytes --]
Want to use TSC as clocksource
have a Intel Core2 Duo with constant_tsc flag
TSC should be stable at C1 + C2, it is debatable whether C3 is stable
Using processor.max_cstate=2 to use only C1 + C2 changes nothing, still get
Monitor-Mwait will be used to enter C-3 state
there should be checks before this is forced
Please CC answers, comments to my email.
[-- Attachment #2: tsc --]
[-- Type: application/octet-stream, Size: 1930 bytes --]
Want to use TSC as clocksource
have a Intel Core2 Duo with constant_tsc flag
TSC should be stable at C1 + C2, it is debatable whether C3 is stable
Using processor.max_cstate=2 to use only C1 + C2 changes nothing, still get
Monitor-Mwait will be used to enter C-3 state
there should be checks before this is forced
Please CC answers, comments to my email.
[ 0.000000] hpet clockevent registered
[ 0.000000] Fast TSC calibration using PIT
...
...
[ 0.012931] CPU0: Thermal monitoring enabled (TM2)
[ 0.012980] using mwait in idle threads.
...
...
[ 0.461731] HPET: 4 timers in total, 0 timers will be used for per-cpu timer
[ 0.461786] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0
[ 0.461990] hpet0: 4 comparators, 64-bit 14.318180 MHz counter
[ 0.470034] Switching to clocksource tsc
...
...
[ 0.575163] ACPI: acpi_idle registered with cpuidle
[ 0.577772] Monitor-Mwait will be used to enter C-1 state
[ 0.589800] Monitor-Mwait will be used to enter C-2 state
[ 0.589843] Monitor-Mwait will be used to enter C-3 state
[ 0.589876] Marking TSC unstable due to TSC halts in idle
[ 0.591120] Switching to clocksource hpet
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
stepping : 6
cpu MHz : 800.000
cache size : 3072 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr
sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor
ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority
bogomips : 4787.86
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: TSC as clocksource
2011-01-09 22:54 TSC as clocksource Rob
@ 2011-01-10 13:44 ` Peter Zijlstra
2011-01-10 13:54 ` Thomas Gleixner
0 siblings, 1 reply; 4+ messages in thread
From: Peter Zijlstra @ 2011-01-10 13:44 UTC (permalink / raw)
To: Rob; +Cc: linux-kernel, Brown, Len, tglx
On Mon, 2011-01-10 at 09:54 +1100, Rob wrote:
> Want to use TSC as clocksource
> have a Intel Core2 Duo with constant_tsc flag
> TSC should be stable at C1 + C2, it is debatable whether C3 is stable
>
> Using processor.max_cstate=2 to use only C1 + C2 changes nothing, still get
> Monitor-Mwait will be used to enter C-3 state
> there should be checks before this is forced
>
> Please CC answers, comments to my email.
Len, Thomas?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: TSC as clocksource
2011-01-10 13:44 ` Peter Zijlstra
@ 2011-01-10 13:54 ` Thomas Gleixner
2011-01-10 17:43 ` Len Brown
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Gleixner @ 2011-01-10 13:54 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: Rob, linux-kernel, Brown, Len
On Mon, 10 Jan 2011, Peter Zijlstra wrote:
> On Mon, 2011-01-10 at 09:54 +1100, Rob wrote:
> > Want to use TSC as clocksource
> > have a Intel Core2 Duo with constant_tsc flag
> > TSC should be stable at C1 + C2, it is debatable whether C3 is stable
> >
> > Using processor.max_cstate=2 to use only C1 + C2 changes nothing, still get
> > Monitor-Mwait will be used to enter C-3 state
> > there should be checks before this is forced
We unconditinally set TSC unstable for anything > C1. The reason is
that we had a lot of troubles with BIOSes which advertise C2, but in
fact implement C3. Unfortunately we can't verify that.
Thanks,
tglx
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: TSC as clocksource
2011-01-10 13:54 ` Thomas Gleixner
@ 2011-01-10 17:43 ` Len Brown
0 siblings, 0 replies; 4+ messages in thread
From: Len Brown @ 2011-01-10 17:43 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: Peter Zijlstra, Rob, linux-kernel
> > On Mon, 2011-01-10 at 09:54 +1100, Rob wrote:
> > > Want to use TSC as clocksource
> > > have a Intel Core2 Duo with constant_tsc flag
> > > TSC should be stable at C1 + C2, it is debatable whether C3 is stable
no debate, TSC on Core2 stops in C3.
> > > Using processor.max_cstate=2 to use only C1 + C2 changes nothing, still get
> > > Monitor-Mwait will be used to enter C-3 state
> > > there should be checks before this is forced
>
> We unconditinally set TSC unstable for anything > C1. The reason is
> that we had a lot of troubles with BIOSes which advertise C2, but in
> fact implement C3. Unfortunately we can't verify that.
Right.
There are some Core2 where what ACPI advertises as C2 the TSC works,
and some where it does something other than "hardware C2",
such as "hardware C3" and the TSC stops, so Linux is conservative here.
If you want a stable TSC on Core2 (and before)
then you need to use either idle=poll or processor.max_cstate=1.
Nehalem and newer (Core i7 etc) have an invarient TSC that works no matter
what C-states are present.
cheers,
Len Brown, Intel Open Source Technology Center
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-01-10 17:43 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-09 22:54 TSC as clocksource Rob
2011-01-10 13:44 ` Peter Zijlstra
2011-01-10 13:54 ` Thomas Gleixner
2011-01-10 17:43 ` Len Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox