Clock not moving in virtual machine

Alexander Motin mav at FreeBSD.org
Fri Jul 16 06:34:41 UTC 2010


Rob Farmer wrote:
> I have a VPS from rootbsd.net which is running current, though I don't
> update it very often. I just built and installed a new world and
> kernel and now the clock will not move from the time the system was
> booted, ie:
> # date
> Thu Jul 15 16:15:58 PDT 2010
> <wait a minute>
> # date
> Thu Jul 15 16:15:58 PDT 2010
> 
> I have an old kernel from May 27 which doesn't have this problem. I
> noticed some clock related stuff changing in current in the last
> couple of weeks and suspect that their VM setup doesn't play well with
> these changes (their site says they use Xen, but several boot messages
> refer to QEMU). Officially, I think they only support running 8.0 so I
> thought I would ask here if anyone has any ideas before putting in a
> support request.
> 
> Here's a diff of the dmesgs - I can post full copies if needed but
> didn't want to start with a ridicously long message:

>  FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>  FreeBSD/SMP: 0 package(s) x 16 core(s) x 2 SMT threads
>   cpu0 (BSP): APIC ID:  0

Probably not related, but funny. :) So you have two CPUs?

> @@ -81,7 +81,10 @@
>  ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
>  ppc0: [ITHREAD]
>  ppbus0: <Parallel port bus> on ppc0
> -atrtc0: <AT Real Time Clock> at port 0x70 irq 8 on isa0
> +atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0
> +atrtc0: [FILTER]
> +Event timer "RTC" frequency 32768 Hz quality 0
> +Starting kernel event timers: LAPIC @ 200Hz, RTC @ 128Hz
>  Timecounters tick every 5.000 msec

Everything seems reasonable there. Try to collect more information:
sysctl kern.timecounter
sysctl kern.eventtimer
vmstat -ia
systat -vm 1 (presence and frequencies of interrupts)

It could be a bug in emulation of some timers or bug in respective timer
driver, which was not triggered before last changes. You may try switch
to different timecounter by setting kern.timecounter.hardware, or
different eventtimers by setting kern.eventtimer.timer1 and
kern.eventtimer.timer2 sysctls.

-- 
Alexander Motin


More information about the freebsd-current mailing list