Hi,
I have a simple installation of OpenBSD 6.2 with latest patches
installed on an amd64 machine.
I am unable to reboot an Alpine Linux 3.7.0 guest.
1) I have installed an Alpine Linux guest and it works fine on vmd. The
entry in "vmctl status" properly lists the guest after host boot.
$ vmctl status
ID PID VCPUS MAXMEM CURMEM TTY OWNER NAME
1 #### 1 1.0G ###M ttyp0 root vmname
2) Now when I run "reboot" within the Alpine guest, one CPU on the
host machine starts hitting 100%. Later the screen displays a blue
background error message.
Tailing the /var/log/messages lists the following error messages:
/bsd: vmx_fault_page: uvm_fault returns 14, GPA=0xffffa148, rip=0xf7d8a
vmd: vcpu_run_loop: vm 1 / vcpu 0 run ioctl failed: Bad address
At this point, the 100% CPU returns to normal load.
3) A subsequent "vmctl status" does not show the vm.
$ vmctl status
ID PID VCPUS MAXMEM CURMEM TTY OWNER NAME
Trying to start the vm via a "vmctl start vmname" outputs the following
$ doas vmctl start vmname
vmctl: start vm command failed: Operation already in progress
However, there is no vm listed in the output of "vmctl status".
$ vmctl status
ID PID VCPUS MAXMEM CURMEM TTY OWNER NAME
$ doas rcctl check vmd
vmd(ok)
$ doas vmctl reload
vmctl: command failed
After vmctl reload, the tailed log contains:
vmd: /etc/vm.conf:##: vm "vmname" failed: Operation not permitted
I have run "poweroff" within Alpine as well, but it has a similar result
as above. The vm shuts down, there is no 100% CPU, but it is not visible
within the vmctl status. Trying to start via vmctl results in the same
output on commandline.
$ doas vmctl start vmname
vmctl: start vm command failed: Operation already in progress
The tailed log contains:
vmd: vcpu_run_loop: vm 3 / vcpu 0 run ioctl failed: Input/output error
4) A "doas vmctl stop #" results in one CPU hitting and staying at 100%.
$ doas vmctl stop #
$ top
PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND
#### _vmd 28 0 1027M 102M onproc/0 thrdeat ##.#H 99.02% vmd
$ vmctl status
ID PID VCPUS MAXMEM CURMEM TTY OWNER NAME
1 #### 1 1.0G ###M ttyp0 root vmname - stoppin
The only way that works right now is to do a "doas rcctl stop vmd",
"doas rcctl start vmd". However, this results in the entire vmd being
stopped and started.
The relevant section of /etc/vm.conf
vm vmname {
disk location/disk.img
interface tap0 {
locked lladdr 00:00:00:00:00:01
switch "local"
}
memory 1G
owner normaluser
}
switch "local" {
add vether0
interface bridge0
}
I am sorry for the long mail.
Thanks.
Regards,
ab.
---------|---------|---------|---------|---------|---------|---------|--