On Fri, Mar 04, 2022 at 09:24:47AM -0500, Shawn Webb wrote:
> On Tue, Mar 01, 2022 at 02:39:55PM +0000, Mark Johnston wrote:
> > The branch main has been updated by markj:
> >
> > URL:
> > https://cgit.FreeBSD.org/src/commit/?id=84369dd52369cbae28970dca20a53d3de1719907
> >
> > commit 84369dd52369cbae28970dca20a53d3de1719907
> > Author: Mark Johnston <[email protected]>
> > AuthorDate: 2022-03-01 14:39:35 +0000
> > Commit: Mark Johnston <[email protected]>
> > CommitDate: 2022-03-01 14:39:35 +0000
> >
> > x86: Probe the TSC frequency earlier
> >
> > This lets us use the TSC to implement early DELAY, limiting the use of
> > the sometimes-unreliable 8254 PIT.
> >
> > PR: 262155
> > Reviewed by: emaste
> > Tested by: emaste, mike tancsa <[email protected]>, Stefan Hegnauer
> > <[email protected]>
> > MFC after: 1 month
> > Sponsored by: The FreeBSD Foundation
> > Differential Revision: https://reviews.freebsd.org/D34367
> > ---
> > sys/amd64/amd64/machdep.c | 14 +++++-
> > sys/i386/i386/machdep.c | 11 ++++-
> > sys/x86/include/clock.h | 3 +-
> > sys/x86/isa/clock.c | 4 +-
> > sys/x86/x86/tsc.c | 123
> > +++++++++++++++++++++++++---------------------
> > 5 files changed, 94 insertions(+), 61 deletions(-)
>
> Hey Mark,
>
> Something about this commit breaks booting in Hyper-V. Reverting this
> particular commit makes Hyper-V happy again.
The patch below might be sufficient. I'll test it in Azure but it'll
take me some time.
diff --git a/sys/x86/x86/delay.c b/sys/x86/x86/delay.c
index c767250954da..95b994b15f81 100644
--- a/sys/x86/x86/delay.c
+++ b/sys/x86/x86/delay.c
@@ -89,7 +89,7 @@ delay_tc(int n)
return (1);
}
tc = timecounter;
- if (tc->tc_quality <= 0)
+ if (tc == NULL || tc->tc_quality <= 0)
return (0);
func = tc->tc_get_timecount;
mask = tc->tc_counter_mask;