Re: [PATCH] x86: Support always running TSC on Intel CPUs

From: Joe Korty
Date: Tue Nov 18 2008 - 11:48:33 EST


On Tue, Nov 18, 2008 at 11:05:42AM -0500, Ingo Molnar wrote:
>
> * Joe Korty <joe.korty@xxxxxxxx> wrote:
>
> > On Tue, Nov 18, 2008 at 09:09:52AM +0100, Ingo Molnar wrote:
> > >
> > > * Venki Pallipadi <venkatesh.pallipadi@xxxxxxxxx> wrote:
> > >
> > > > + if (c->x86_power & (1 << 8)) {
> > > > set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
> > > > + set_cpu_cap(c, X86_FEATURE_NOSTOP_TSC);
> > > > + }
> > >
> > > hm, the naming is a bit confusing. We now have 3 variants:
> > >
> > > X86_FEATURE_TSC
> > > X86_FEATURE_CONSTANT_TSC
> > > X86_FEATURE_NOSTOP_TSC
> > >
> > > NOSTOP_TSC is basically what CONSTANT_TSC should have been to begin
> > > with ;-)
> > >
> > > i'd suggest to rename it to this:
> > >
> > > X86_FEATURE_TSC
> > > X86_FEATURE_CONSTANT_FREQ_TSC
> > > X86_FEATURE_STABLE_TSC
> > >
> > > ... with CONSTANT_FREQ_TSC not having any real role in the long run.
> > > (it's similarly problematic to a completely unstable TSC)
> > >
> > > does this sound ok?
> >
> >
> > To me, the new naming has the same head-scratching potential
> > as the old....
> >
> > How about:
> >
> > X86_FEATURE_TSC
> > X86_FEATURE_STABLE_TSC_OBSOLETE
> > X86_FEATURE_STABLE_TSC
>
> the _honest_ naming would be:
>
> X86_FEATURE_TSC
> X86_FEATURE_STABLE_TSC_BUT_NOT_ALWAYS
> X86_FEATURE_STABLE_TSC
>
> ;-)
>
> what's head-scratching about X86_FEATURE_CONSTANT_FREQ_TSC? It's a
> limited TSC variant: it follows a reference frequency that does not
> change with cpufreq changes, but it can stop at a whim in C states. So
> it's not "stable" nor really "constant" in the everyday sense.
>
> What is 'constant' about it is its reference frequency - hence
> X86_FEATURE_CONSTANT_FREQ_TSC.
>
> Ingo


A name like X86_FEATURE_CONSTANT_FREQ_TSC implies that
the result (the TSC) is constant frequency, not the input.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/