Port-amd64 archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: clock stability, TSC, and QEMU
On 09/05/2021 07:23, nia wrote:
hello,
when running NetBSD as a QEMU guest, there seem to be problems
with clock stability.
Interesting. I don't have this problem with NetBSD guest but I had a
similar one with an OpenBSD guest (see below).
This is my command line (host is Debian Buster):
qemu-system-x86_64 \
-drive if=virtio,file=/home/oc/VM/img/netbsd.image,index=0,media=disk \
-drive if=virtio,file=/home/oc/VM/img/netbsd.image.old,index=1,media=disk \
-M q35,accel=kvm -m 250M -cpu host -smp $(nproc) \
-nic user,hostfwd=tcp:127.0.0.1:5555-:22,model=virtio-net-pci,ipv6=off \
-daemonize -display none -vga none \
-serial mon:telnet:127.0.0.1:6665,server,nowait \
-pidfile /home/oc/VM/pid/netbsd-pid -nodefaults
i remember having this problem when using a commercial KVM-based VM
host. erlang is very sensitive to monotonic clock drift, and
will abort if it detects it. my application would infrequently
abort regardless of kern.timecounter.hardware (although ACPI-Safe
annecdotally made it less worse) due to the monotonic clock
stepping backwards.
when running NetBSD as a QEMU guest with NVMM, the following
message is printed to dmesg on boot:
autoconfiguration ERROR: 9225914709 cycle TSC drift observed
(kern.timecounter.hardware defaults to hpet)
$ dmesg|grep drift
$ grep drift /var/log/messages
$ sysctl kern.timecounter.hardware
kern.timecounter.hardware = hpet0
QEMU has a -rtc setting, but I'm unsure of best option
to pick for NetBSD:
-rtc [base=utc|localtime|<datetime>][,clock=host|rt|vm][,driftfix=none|slew]
set the RTC base and clock, enable drift fix for clock ticks (x86 only)
additionally, on my laptop running -curent, I get spammed
with warnings about TSC drift when waking from suspend:
http://gnats.netbsd.org/55694
It is defaulting to using TSC as a timecounter -
I wonder if NetBSD should be relying on TSC less.
I had a problem with an OpenBSD guest, where the clock would go mental
after a prolonged period of inactivity and would trigger ddb(4) kernel
panic. I was suggested to add "-kvmclock-stable-bit" to -"-cpu", so my
OpenBSD boot is:
qemu-system-x86_64 \
-drive if=virtio,file=/home/oc/VM/img/openbsd.image,index=0,media=disk \
-drive if=virtio,file=/home/oc/VM/img/openbsd.image.old,index=1,media=disk \
-M q35,accel=kvm -m 250M -cpu host,-kvmclock-stable-bit -smp $(nproc) \
-nic user,hostfwd=tcp:127.0.0.1:5556-:22,model=virtio-net-pci \
-daemonize -display none -vga none \
-serial mon:telnet:127.0.0.1:6666,server,nowait \
-pidfile /home/oc/VM/pid/openbsd-pid -nodefaults
telnet 127.0.0.1 6666
I don't know how all this fits with NVMM, though.
--
Ottavio Caruso
Home |
Main Index |
Thread Index |
Old Index