vmd: Implement simulated baudrate support in the ns8250 module. The
authormlarkin <mlarkin@openbsd.org>
Wed, 7 Jun 2017 14:53:28 +0000 (14:53 +0000)
committermlarkin <mlarkin@openbsd.org>
Wed, 7 Jun 2017 14:53:28 +0000 (14:53 +0000)
commit2dda72b8c140e1cb92f12dd3464785f140a47017
tree1a958a66ca700f69826f5c388a8f8fdf75d39c14
parent8461863e6c15c8021d40bbb9d141c58c7cff0b35
vmd: Implement simulated baudrate support in the ns8250 module. The
previous version was allowing an output rate that is "too fast", and linux
guests would give up after 512 characters TXed ("too much work for irq4").

This diff calculates the approximate rate we can sustain at the current
programmed baud rate and limits the output to that rate by inserting a
HZ delay after a specified number of characters have been transmitted.
This fixes the linux guest console issue.

Note that the console now outputs at more or less the selected baud rate,
instead of nearly instantaneously as before - if you selected 9600 in
your guest VMs before, you might want to change that to 115200 now for a
better console experience.

krw@ "seems like a good idea to me"
usr.sbin/vmd/ns8250.c
usr.sbin/vmd/ns8250.h
usr.sbin/vmd/vm.c
usr.sbin/vmd/vmm.h