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>