From: Dexuan Cui <decui@xxxxxxxxxxxxx> Sent: Saturday, April 8, 2023 2:04 PM > > If Hyper-V TSC page is unavailable and Invariant-TSC is available, > currently hyperv_cs_msr (rather than Invariant-TSC) is used by default. > > Use Invariant-TSC by default by downgrading hyperv_cs_msr.rating in > hv_init_tsc_clocksource(), if Invariant-TSC is available. > > Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx> > --- > drivers/clocksource/hyperv_timer.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c > index c0cef92b12b82..7901a88ad9188 100644 > --- a/drivers/clocksource/hyperv_timer.c > +++ b/drivers/clocksource/hyperv_timer.c > @@ -506,9 +506,6 @@ static bool __init hv_init_tsc_clocksource(void) > { > union hv_reference_tsc_msr tsc_msr; > > - if (!(ms_hyperv.features & HV_MSR_REFERENCE_TSC_AVAILABLE)) > - return false; > - > /* > * If Hyper-V offers TSC_INVARIANT, then the virtualized TSC correctly > * handles frequency and offset changes due to live migration, > @@ -525,6 +522,9 @@ static bool __init hv_init_tsc_clocksource(void) > hyperv_cs_msr.rating = 250; > } > > + if (!(ms_hyperv.features & HV_MSR_REFERENCE_TSC_AVAILABLE)) > + return false; > + > hv_read_reference_counter = read_hv_clock_tsc; > > /* > -- > 2.25.1 Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>