Support guest reboots when in Xen HVM mode
PATCH 1/3 Support guest reboots when in Xen HVM mode
Call xc_domain_shutdown with the reboot flag when the guest requests a reboot.
--- xen-all.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-)
xen-all.c +1 -0
@@ -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);
+ }
+}
+
Signature · 1 line
1.7.4.1
Quoted 2 lines · John Baboval
Call
xc_domain_shutdownwith the reboot flag when the guest requests a reboot.
Thanks for the patch!
Sorry for the delay in replaying but away for XenSummit Asia.
Quoted 31 lines
Signed-off-by John V. Baboval <[email protected]>Signed-off-by Tom Goetz <[email protected]>--- xen-all.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-)xen-all.c +1
-0@@ -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); }}
xen-all.c +10
-0+ +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 {
xen-all.c
Quoted 10 lines
xen-all.c +10
-0+ 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?
Quoted 46 lines · Stefano Stabellini
Quoted 2 lines · John Baboval
Call
xc_domain_shutdownwith the reboot flag when the guest requests a reboot.Thanks for the patch!
Sorry for the delay in replaying but away for XenSummit Asia.Quoted 40 lines
Signed-off-by John V. Baboval<[email protected]>Signed-off-by Tom Goetz<[email protected]>--- xen-all.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-)xen-all.c +1
-0@@ -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); }}
xen-all.c +19
-0+ +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); + }
Quoted 8 lines
Quoted 1 line
+}
I think that what you are doing is correct but I couldn't help but notice that
reboot_hvm_domainis very similar todestroy_hvm_domain. I would rather unify the two functions and have a singleshutdown_domainfunction with two arguments: a reboot/destroy argument andxc_handle(we don't need to open a new one, we can reusestate->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.