• Vitaly Kuznetsov's avatar
    KVM: x86: hyper-v: Track Hyper-V TSC page status · cc9cfddb
    Vitaly Kuznetsov authored
    
    
    Create an infrastructure for tracking Hyper-V TSC page status, i.e. if it
    was updated from guest/host side or if we've failed to set it up (because
    e.g. guest wrote some garbage to HV_X64_MSR_REFERENCE_TSC) and there's no
    need to retry.
    
    Also, in a hypothetical situation when we are in 'always catchup' mode for
    TSC we can now avoid contending 'hv->hv_lock' on every guest enter by
    setting the state to HV_TSC_PAGE_BROKEN after compute_tsc_page_parameters()
    returns false.
    
    Check for HV_TSC_PAGE_SET state instead of '!hv->tsc_ref.tsc_sequence' in
    get_time_ref_counter() to properly handle the situation when we failed to
    write the updated TSC page values to the guest.
    
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20210316143736.964151-4-vkuznets@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    cc9cfddb