tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pvclock (kvm_clock) support: where to attach





On 12/31/23 15:17, Taylor R Campbell wrote:
https://nxr.netbsd.org/xref/src/sys/arch/xen/xen/xen_clock.c

oh.

Unless there's a compelling reason that the pvclock and xenclock
interfaces are different enough to warrant having multiple copies of
the logic in src, I think we should adapt the existing code to work in
both settings.  I put a lot of work into the xen_clock.c driver to
record useful diagnostics about when the host's time is not behaving
right (vs when NetBSD itself has done something wrong), which we've
seen in practice on various hosts, and it would be a shame to lose
that.

Ok, the point is to have an interface that is able to expose
kvm_clock, which is used by Firecracker, I guess this could be
added without much pain into this existing Xen code.

If not, I think long-term we should introduce a new sys/dev/pv or
something, move the bulk of xen_clock.c to that (other than the
Xen-specific parts), and have both the Firecracker code and the Xen
code use it.

Actually that's what OpenBSD does, they do have a sys/dev/pv with a
pvbus and it's honestly a classy way of dealing with various
hypervisors.

On a side note:

I'm not used to this clock/rtc mechanisms, but something puzzles me,
when the virtual machine is started without MC146818 RTC support, it
hangs at todr_gettime_ymdhms, which is mapped to rtc_get_ymdhms in
sys/arch/x86/isa/rtc.c, which at the end of the day calls
mc146818_read(). Shouldn't sys/arch/x86/isa/clock.c:startrtclock()
return when mc146818_read() fails? There seem to have nothing but
MC146818 for RTC in x86.

--
------------------------------------------------------------------------
Emile `iMil' Heitor <imil@{home.imil.net,NetBSD.org}> | https://imil.net


Home | Main Index | Thread Index | Old Index