On Mon, Mar 13, 2017 at 08:04:14PM +0100, Thomas Gleixner wrote: > On Mon, 13 Mar 2017, Peter Zijlstra wrote: > > > > > Subhransu reported that convert_art_to_tsc() isn't working for him. > > > > It turns out that because of commit: > > > > 57779dc2b3b7 ("x86, tsc: Skip refined tsc calibration on systems with > > reliable TSC") > > That's the wrong culprit. The problem was introduced with the ART support > patches. I fixed the changelog up.
Right; thanks for untangling that history. > > Systems with TSC_KNOWN_FREQ (due to having CPUID.15h) will not run the > > refined calibration thing, and then forget to set the ART clocksource > > relation. > > > > We cannot set the ART relation prior to running the refined calibration; > > therefore duplicate the lines. > > > > XXX: should we clear this in mark_tsc_unstable() ? > > It's already handled. get_device_system_timestamp() which convert ART to > clock monotonic checks whether the timekeeper clocksource is the same as > the correlated ART clocksource, i.e. TSC. So when timekeeping switches away > from TSC get_device_system_timestamp() returns -ENODEV. Ah right. Couldn't find that in a hurry.