The middle two patches are meant to address a regression reported on the list under "Problems with APIC on versions 4.9 and later (4.8 works)". In the course of analyzing output from a debugging patch I ran into another anomaly again, which I thought I should finally try to address. Hence patch 1. Patch 4 is new in v3 and RFC for now.
While looking closely at the corresponding debugging patch'es output I noticed a suspicious drift between local and master stime: Measured not very precisely, local was behind master by about 200ms in about half an hour. Interestingly the recording of ->master_stime (and hence the not really inexpensive invocation of read_platform_stime()) looks to be pretty pointless when CONSTANT_TSC - I haven't been able to spot an actual consumer. IOW the drift may not be a problem, and we might be able to eliminate the platform timer reads. (When !CONSTANT_TSC, such drift would get corrected anyway, by local_time_calibration().) 1: change initiation of the calibration timer 2: adjust time recording time_calibration_tsc_rendezvous() 3: don't move TSC backwards in time_calibration_tsc_rendezvous() 4: re-arrange struct calibration_rendezvous Jan