Messages in this thread | | | From | Andi Kleen <> | Subject | Re: [patch 13/19] GTOD: Mark TSC unusable for highres timers | Date | Fri, 10 Nov 2006 06:10:13 +0100 |
| |
current_tsc_khz = tsc_khz; > > clocksource_tsc.mult = clocksource_khz2mult(current_tsc_khz, > > clocksource_tsc.shift); > > +#ifndef CONFIG_HIGH_RES_TIMERS > > /* lower the rating if we already know its unstable: */ > > if (check_tsc_unstable()) > > clocksource_tsc.rating = 0; > > - > > +#else > > + /* > > + * Mark TSC unsuitable for high resolution timers. TSC has so > > + * many pitfalls: frequency changes, stop in idle ... When we > > + * switch to high resolution mode we can not longer detect a > > + * firmware caused frequency change, as the emulated tick uses > > + * TSC as reference. This results in a circular dependency. > > + * Switch only to high resolution mode, if pm_timer or such > > + * is available. > > + */ > > + clocksource_tsc.rating = 50; > > + clocksource_tsc.is_continuous = 0; > > +#endif > > init_timer(&verify_tsc_freq_timer); > > verify_tsc_freq_timer.function = verify_tsc_freq; > > verify_tsc_freq_timer.expires = > > > Hmmm. I wish this patch was unnecessary, but I don't see an easy > solution.
Very sad. This will make a lot of people unhappy, even to the point where they might prefer disabling noidlehz over super slow gettimeofday. I assume you at least have a suitable command line option for that, right?
Can we get a summary on which systems the TSC is considered unstable? Normally we assume if it's stable enough for gettimeofday it should be stable enough for longer delays too.
-Andi
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |