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.
---------|---------|---------|---------|---------|---------|---------|--

Reply via email to