From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH OSSTEST] Toolstack::xl: Support for ACPI fallback for shutdown Date: Thu, 7 May 2015 11:11:56 +0100 Message-ID: <1430993516.2660.358.camel@citrix.com> References: <1430989624-21654-1-git-send-email-ian.campbell@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1430989624-21654-1-git-send-email-ian.campbell@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: ian.jackson@eu.citrix.com, Jim Fehlig Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Thu, 2015-05-07 at 10:07 +0100, Ian Campbell wrote: > HVM guests which do not include PV drivers will not shutdown after a > simple "xl shutdown". Add a runvar to indicate that the guest will > shutdown in response to an ACPI power event and apply this to the win7 > and winxp test jobs. > > Tested with: > test-amd64-amd64-xl-qemuu-winxpsp3 > test-amd64-amd64-xl-qemuu-win7-amd64 > test-amd64-amd64-xl-qemuu-debianhvm-amd64 > test-amd64-amd64-xl > > The first two correctly used the extra flag and the domains shutdown, > the other two correctly didn't use the extra flag and still shutdown. > Not currently implemented for libvirt, since we currently have no > libvirt tests I could try it with. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/sect-Managing_guest_virtual_machines_with_virsh-Shutting_down_rebooting_and_force_shutdown_of_a_guest_virtual_machine.html suggests that virsh reboot can take a comma separated list for the --mode option and will try them each in turn. It doesn't say the same for virsh shutdown but it might be reasonable to assume that this is a docs issue not a functionality one. If that were the case then I think the below would do the trick, but as I say I don't have an immediately convenient way to test, nor a need since there are no such tests right now. Ian. diff --git a/Osstest/Toolstack/libvirt.pm b/Osstest/Toolstack/libvirt.pm index 8bd7f4f..e7f4860 100644 --- a/Osstest/Toolstack/libvirt.pm +++ b/Osstest/Toolstack/libvirt.pm @@ -60,7 +60,11 @@ sub shutdown_wait ($$$) { my ($self,$gho,$timeout) = @_; my $ho = $self->{Host}; my $gn = $gho->{Name}; - target_cmd_root($ho, "virsh shutdown $gn", 30); + my $mode = "paravirt"; + $mode .= ",acpi" + if guest_var($gho,'acpi_shutdown','false') eq 'true'; + + target_cmd_root($ho, "virsh shutdown --mode $mode $gn", 30); guest_await_destroy($gho,$timeout); }