Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Aug 2014 12:04:03 -0700
From:      Craig Rodrigues <rodrigc@FreeBSD.org>
To:        Allan Jude <allanjude@freebsd.org>
Cc:        "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org>
Subject:   Re: libvirt and rebooting of a bhyve VM
Message-ID:  <CAG=rPVdBDC48Ug34Qc-%2BBXY_W4q-=1mAQz5vq9nqPXCR4bfcHw@mail.gmail.com>
In-Reply-To: <53F37A6F.90405@freebsd.org>
References:  <CAG=rPVcGFSnMcMdrNtWjUtHUc0RLXps-t9WwzokNtyHQwWDfFQ@mail.gmail.com> <20140819154035.GA62903@kloomba> <EBFA02E4-AF67-4988-BF3F-5DB9F7D4BC76@jnielsen.net> <53F37A6F.90405@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 19, 2014 at 9:25 AM, Allan Jude <allanjude@freebsd.org> wrote:
>
> Yes, this revision adds the ability to 'reboot'. This does not exit
> bhyve at all, so there is no exit level
>
> You can 'reboot' a bhyve externally using:
> bhyvectl --force-reset --vm=xxx
>
> or force a poweroff with: bhyvectl --force-reset --vm=xxx
>
> SIGTERM simulates an ACPI shutdown
>
>
> the bhyvectl --destroy is to clean up, the instance remains even after a
> clean shutdown. In the past, it had to be destroyed and recreated to
> start the VM again, although now with reboot support, that may not be
> required.

Thanks for that information.  It's very useful.
There doesn't seem to be a bhyvectl man page.  Do you have the
bandwidth to write one up and check it into the tree?
That would be very helpful.

I ran some experiments with bhyvectl --force-reset and
--force-poweroff.  They work as expected.
There doesn't seem to be a bhyvectl command which simulates ACPI shutdown.

If I have the name of the bhyve VM, is there a way that I can obtain
the pid of the bhyve process which started
the VM, so I can send it a SIGTERM, or do I need to keep track of that
myself when starting the bhyve process?


>
>
> the bhyvectl --destroy is to clean up, the instance remains even after a
> clean shutdown. In the past, it had to be destroyed and recreated to
> start the VM again, although now with reboot support, that may not be
> required.

You are right, calling bhyvectl --destroy does not seem to be required.
I ran some experiments:


DOESN'T WORK
==============
    bhyvectl --destroy ......
    bhyveload  .....
    while true; do
           byve ......
           if [ $? -ne 0 ]; then
                break
           fi
   done

if I do a shutdown -r inside the VM, then when the VM reboots, I get:

Assertion failed: (error == 0), function fbsdrun_addcpu, file
/usr/src/usr.sbin/bhyve/bhyverun.c, line 266.




WORKING
========
    bhyvectl --destroy ......
    while true; do
           bhyveload  .....
           byve ......
           if [ $? -ne 0 ]; then
                break
           fi
   done


This combination seems to work fine.  I can do "shutdown -r" inside
the VM, and it reboots fine.
I can also do "shutdown -p", and the VM shuts down.

So I think vmrun.sh can be changed to accomodate this new behavior,
and make it more clear
to people writing scripts on top of bhyve.
--
Craig



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG=rPVdBDC48Ug34Qc-%2BBXY_W4q-=1mAQz5vq9nqPXCR4bfcHw>