Date: Tue, 19 Aug 2014 11:33:19 -0700 From: Craig Rodrigues <rodrigc@FreeBSD.org> To: John Baldwin <jhb@freebsd.org> Cc: "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org> Subject: Re: libvirt and rebooting of a bhyve VM Message-ID: <CAG=rPVfi0fwUyHF_dkzKX9ejo4Na4wLSuufaqBoo0U7p7ypCZA@mail.gmail.com> In-Reply-To: <201408191332.48730.jhb@freebsd.org> References: <CAG=rPVcGFSnMcMdrNtWjUtHUc0RLXps-t9WwzokNtyHQwWDfFQ@mail.gmail.com> <20140819154035.GA62903@kloomba> <CAG=rPVdGuuKuYsPKy%2BO5o8i_fOZ8qrxh27N%2BY2dNVysXapu13A@mail.gmail.com> <201408191332.48730.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 19, 2014 at 10:32 AM, John Baldwin <jhb@freebsd.org> wrote: > The exit code is different. An ACPI shutdown uses an exit code of 1 whereas a > reboot uses an exit code of 0 IIRC. Hi, I have a CURRENT system, and ran some tests doing a "shutdown -r" and "shutdown -p" verified that you are right, with respect to the exit codes. Looking at src/usr.sbin/bhyve/bhyverun.c, I see that fbsdrun_start_thread() -> vm_loop() Inside vm_loop(), there is this line: rc = (*handler[exitcode])(ctx, &vmexit[vcpu], &vcpu); That line ends up calling vmexit_suspend(). In vmexit_suspend() there is this: switch (how) { case VM_SUSPEND_RESET: exit(0); case VM_SUSPEND_POWEROFF: exit(1); case VM_SUSPEND_HALT: exit(2); case VM_SUSPEND_TRIPLEFAULT: exit(3); default: fprintf(stderr, "vmexit_suspend: invalid reason %d\n", how); exit(100); } I think that: (1) vmrun.sh should be changed a little bit to accomodate this new logic (2) the bhyve man page should document these return codes. -- Craig
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG=rPVfi0fwUyHF_dkzKX9ejo4Na4wLSuufaqBoo0U7p7ypCZA>