From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:59567) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNSJZ-0008K7-7o for qemu-devel@nongnu.org; Mon, 07 Nov 2011 11:44:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RNSJY-0003P5-3k for qemu-devel@nongnu.org; Mon, 07 Nov 2011 11:44:53 -0500 Received: from server514a.exghost.com ([72.32.253.68]:2268 helo=server514.appriver.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNSJX-0003Os-U4 for qemu-devel@nongnu.org; Mon, 07 Nov 2011 11:44:52 -0500 Message-ID: <4EB80B00.8010308@virtualcomputer.com> Date: Mon, 07 Nov 2011 11:44:48 -0500 From: John Baboval MIME-Version: 1.0 References: <4EAB04A9.9080509@virtualcomputer.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/3] Support guest reboots when in Xen HVM mode List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefano Stabellini Cc: "qemu-devel@nongnu.org" On 11/07/2011 11:43 AM, Stefano Stabellini wrote: > On Fri, 28 Oct 2011, John Baboval wrote: >> Call xc_domain_shutdown with the reboot flag when the guest requests a >> reboot. > Thanks for the patch! > Sorry for the delay in replaying but away for XenSummit Asia. > >> Signed-off-by: John V. Baboval >> Signed-off-by: Tom Goetz >> --- >> xen-all.c | 22 ++++++++++++++++++++++ >> 1 files changed, 22 insertions(+), 0 deletions(-) >> >> diff --git a/xen-all.c b/xen-all.c >> index b5e28ab..cd71b24 100644 >> --- a/xen-all.c >> +++ b/xen-all.c >> @@ -742,6 +742,7 @@ static void cpu_handle_ioreq(void *opaque) >> } >> if (qemu_reset_requested_get()) { >> qemu_system_reset(VMRESET_REPORT); >> + reboot_hvm_domain(); >> } >> } >> @@ -979,3 +980,24 @@ void destroy_hvm_domain(void) >> xc_interface_close(xc_handle); >> } >> } >> + >> +void reboot_hvm_domain(void) >> +{ >> + XenXC xc_handle; >> + int sts; >> + >> + xc_handle = xen_xc_interface_open(0, 0, 0); >> + if (xc_handle == XC_HANDLER_INITIAL_VALUE) { >> + fprintf(stderr, "Cannot acquire xenctrl handle\n"); >> + } else { >> + sts = xc_domain_shutdown(xc_handle, xen_domid, SHUTDOWN_reboot); >> + if (sts != 0) { >> + fprintf(stderr, "? xc_domain_shutdown failed to issue reboot, " >> + "sts %d, %s\n", sts, strerror(errno)); >> + } else { >> + fprintf(stderr, "Issued domain %d reboot\n", xen_domid); >> + } >> + xc_interface_close(xc_handle); >> + } >> +} > I think that what you are doing is correct but I couldn't help but > notice that reboot_hvm_domain is very similar to destroy_hvm_domain. > I would rather unify the two functions and have a single shutdown_domain > function with two arguments: a reboot/destroy argument and xc_handle > (we don't need to open a new one, we can reuse state->xce_handle). > Are you OK with submitting a new version of this patch with these > changes? Sounds good to me. I have a huge backlog of stuff to debug and test though, so it'll be a few days before I get to this.