OpenBSD CVS

CVS log for src/usr.sbin/vmd/ns8250.h


[BACK] Up to [local] / src / usr.sbin / vmd

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.10 / (download) - annotate - [select for diffs], Fri Jul 16 16:21:22 2021 UTC (2 years, 10 months ago) by dv
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, HEAD
Changes since 1.9: +1 -2 lines
Diff to previous 1.9 (colored)

vmd(8): simplify vcpu logic, removing uart & vionet reads

Remove legacy state handling on the ns8250 and virtio network devices
originally put in place before using libevent for async device
events. The vcpu thread doesn't need to process device data as it is
handled by the libevent thread.

This has the benefit of simplifying some of the message passing
between threads introduced to the ns8250 uart since both the vcpu
and libevent threads were processing read events.

No functional change intended. Tested by many, including abieber@,
weerd@, Mischa Peters, and Matthias Schmidt. (Thanks.)

OK mlarkin@

Revision 1.9 / (download) - annotate - [select for diffs], Wed Dec 11 06:45:16 2019 UTC (4 years, 5 months ago) by pd
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.8: +3 -1 lines
Diff to previous 1.8 (colored)

vmd: proper concurrency control when pausing a vm

Removes an XXX which slept for 1s waiting for the vcpu thread to reach HLT and
pause.  We now define a paused and unpaused condition so that a call to
pause_vm() / vmctl pause blocks till the vm really reaches a paused state.

Also, detach events for devices from event loop when pausing and add them back
when unpausing.  This is because some callbacks call pthread_mutex_lock and if
the vm is paused, it would block also causing the libevent thread to block.
This would mean that we would not be able to process any IMSGs received from vmm
(parent process) including a message to unpause.


ok mlarkin@

Revision 1.8 / (download) - annotate - [select for diffs], Tue May 28 07:36:37 2019 UTC (5 years ago) by mlarkin
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.7: +26 -9 lines
Diff to previous 1.7 (colored)

Make vmd(8)'s ns8250 emulation more correct

Remove the scratch register (8250s don't have this), and reorganize
some constants to be able to more easily support more than one serial
port in the future.

ok deraadt

Diff from Katherine Rohl, thanks!

Revision 1.7 / (download) - annotate - [select for diffs], Mon Mar 11 17:08:52 2019 UTC (5 years, 2 months ago) by anton
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.6: +2 -1 lines
Diff to previous 1.6 (colored)

Do not unconditionally wait for read events on the pty associated with a
vm console. Instead, wait for the controlling end of the pty to become
writeable, which implies that the slave end is connected. A recent
change to the kqueue pty implementation caused vmd to hammer the log due
to constantly hitting EOF while reading from the pty since the slave end
was disconnected.

Issue found the hard way by mlarkin@ and tb@

ok mlarkin@

Revision 1.6 / (download) - annotate - [select for diffs], Thu Jul 12 10:15:44 2018 UTC (5 years, 10 months ago) by mlarkin
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.5: +9 -9 lines
Diff to previous 1.5 (colored)

vmm(8)/vmm(4): send a copy of the guest register state to vmd on exit,
avoiding multiple readregs ioctls back to vmm in case register content
is needed subsequently.

ok phessler

Revision 1.5 / (download) - annotate - [select for diffs], Wed Jun 7 14:53:28 2017 UTC (6 years, 11 months ago) by mlarkin
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.4: +7 -1 lines
Diff to previous 1.4 (colored)

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"

Revision 1.4 / (download) - annotate - [select for diffs], Mon May 8 09:08:40 2017 UTC (7 years ago) by reyk
Branch: MAIN
Changes since 1.3: +3 -1 lines
Diff to previous 1.3 (colored)

Adds functions to read and write state of devices in vmd.

This is required for implementing vmctl send and vmctl receive.  vmctl
send / receive are two new options that will support snapshotting VMs
and migrating VMs from one host to another. The atomicio files are
copied from usr.bin/ssh.

Patch from Pratik Vyas; this project was undertaken at San Jose State
University along with his three teammates, Ashwin, Harshada and Siri
with mlarkin@ as the advisor.

OK mlarkin@

Revision 1.3 / (download) - annotate - [select for diffs], Mon Oct 3 06:00:17 2016 UTC (7 years, 8 months ago) by mlarkin
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.2: +1 -0 lines
Diff to previous 1.2 (colored)


add RCS tags

Revision 1.2 / (download) - annotate - [select for diffs], Fri Sep 2 17:10:08 2016 UTC (7 years, 9 months ago) by stefan
Branch: MAIN
Changes since 1.1: +12 -6 lines
Diff to previous 1.1 (colored)

Process incoming com data asynchronously to running VCPU

This registers a handler with libevent that is triggered on incoming
data on the com port.

ok mlarkin@

Revision 1.1 / (download) - annotate - [select for diffs], Thu Sep 1 14:48:09 2016 UTC (7 years, 9 months ago) by mlarkin
Branch: MAIN


Add a set of emulated legacy devices (PIT, PIC, RTC)

discussed with stefan and deraadt

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.