CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    2023/01/30 14:43:12

Modified files:
        usr.sbin/vmd   : ns8250.c 

Log message:
vmd(8): fix an interrupt storm in ns8250.

On slower hosts, such as those in a nested virtualization scenario
of OpenBSD guest inside OpenBSD atop Linux KVM, ns8250 can cause a
race between the kevent firing and the vcpu being kicked by an
assert/deassert of the irq.

The end user experiences a "stuck" serial console and the host will
see a vmd process peg the cpu.

This change only toggles the irq if we were in a position of being
ready to receive data on the device so while the kevent might
continuously fire, the vcpu will not be kicked repeatedly.

OK mlarkin@

Reply via email to