From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43452) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxEKO-0001Lr-F6 for qemu-devel@nongnu.org; Fri, 13 Nov 2015 08:23:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZxEKL-00034L-RE for qemu-devel@nongnu.org; Fri, 13 Nov 2015 08:23:44 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60187) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxEKL-00033L-LY for qemu-devel@nongnu.org; Fri, 13 Nov 2015 08:23:41 -0500 References: <1447354953-18893-1-git-send-email-minyard@acm.org> <1447354953-18893-18-git-send-email-minyard@acm.org> <20151113091508.GA29459@redhat.com> <5645E423.4090805@mvista.com> From: Paolo Bonzini Message-ID: <5645E457.5050905@redhat.com> Date: Fri, 13 Nov 2015 14:23:35 +0100 MIME-Version: 1.0 In-Reply-To: <5645E423.4090805@mvista.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4 17/17] ipmi: Add a force off function List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Corey Minyard , "Daniel P. Berrange" , minyard@acm.org Cc: Igor Mammedov , qemu-devel@nongnu.org, "Michael S. Tsirkin" On 13/11/2015 14:22, Corey Minyard wrote: > On 11/13/2015 03:15 AM, Daniel P. Berrange wrote: >> On Thu, Nov 12, 2015 at 01:02:33PM -0600, minyard@acm.org wrote: >>> From: Corey Minyard >>> >>> Allow the IPMI interface to request a forced power off. >>> >>> Signed-off-by: Corey Minyard >>> --- >>> hw/ipmi/ipmi_bmc_extern.c | 5 +++++ >>> 1 file changed, 5 insertions(+) >>> >>> diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c >>> index 05b9121..7ae6294 100644 >>> --- a/hw/ipmi/ipmi_bmc_extern.c >>> +++ b/hw/ipmi/ipmi_bmc_extern.c >>> @@ -52,6 +52,7 @@ >>> #define VM_CAPABILITIES_IRQ 0x04 >>> #define VM_CAPABILITIES_NMI 0x08 >>> #define VM_CAPABILITIES_ATTN 0x10 >>> +#define VM_CMD_FORCEOFF 0x09 >>> >>> #define TYPE_IPMI_BMC_EXTERN "ipmi-bmc-extern" >>> #define IPMI_BMC_EXTERN(obj) OBJECT_CHECK(IPMIBmcExtern, (obj), \ >>> @@ -268,6 +269,10 @@ static void handle_hw_op(IPMIBmcExtern *ibe, unsigned char hw_op) >>> case VM_CMD_SEND_NMI: >>> k->do_hw_op(s, IPMI_SEND_NMI, 0); >>> break; >>> + >>> + case VM_CMD_FORCEOFF: >>> + exit(0); >>> + break; >> You should really be calling qemu_system_shutdown_request() rather than >> exit() so that you run normal QEMU shutdown logic. > > qemu_system_shutdown_request() would generally have already been called using > VM_CMD_POWEROFF. If I understand correctly, qemu_system_shutdown_request() does > a graceful shutdown and may not complete if the OS has failed. No, that's qemu_system_powerdown_request. Paolo > The CMD_FORCEOFF is a "power off and don't ask me any questions" operation. It's > used as a last resort if VM_CMD_POWEROFF fails. > > -corey > >