• Venki Pallipadi's avatar
    x86: add rdtsc barrier to TSC sync check · 93ce99e8
    Venki Pallipadi authored
    Impact: fix incorrectly marked unstable TSC clock
    
    Patch (commit 0d12cdd5 "sched: improve sched_clock() performance") has
    a regression on one of the test systems here.
    
    With the patch, I see:
    
     checking TSC synchronization [CPU#0 -> CPU#1]:
     Measured 28 cycles TSC warp between CPUs, turning off TSC clock.
     Marking TSC unstable due to check_tsc_sync_source failed
    
    Whereas, without the patch syncs pass fine on all CPUs:
    
     checking TSC synchronization [CPU#0 -> CPU#1]: passed.
    
    Due to this, TSC is marked unstable, when it is not actually unstable.
    This is because syncs in check_tsc_wrap() goes away due to this commit.
    
    As per the discussion on this thread, correct way to fix this is to add
    explicit syncs as below?
    Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    93ce99e8
tsc_sync.c 4.34 KB