From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45282) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxEUV-0007ZM-LM for qemu-devel@nongnu.org; Fri, 13 Nov 2015 08:34:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZxEUR-0005v5-FK for qemu-devel@nongnu.org; Fri, 13 Nov 2015 08:34:11 -0500 Received: from mail-oi0-x231.google.com ([2607:f8b0:4003:c06::231]:33838) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxEUR-0005uQ-6V for qemu-devel@nongnu.org; Fri, 13 Nov 2015 08:34:07 -0500 Received: by oies6 with SMTP id s6so49886745oie.1 for ; Fri, 13 Nov 2015 05:34:06 -0800 (PST) Message-ID: <5645E6CC.9060209@mvista.com> Date: Fri, 13 Nov 2015 07:34:04 -0600 From: Corey Minyard MIME-Version: 1.0 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> <5645E457.5050905@redhat.com> In-Reply-To: <5645E457.5050905@redhat.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: Paolo Bonzini , "Daniel P. Berrange" , minyard@acm.org Cc: Igor Mammedov , qemu-devel@nongnu.org, "Michael S. Tsirkin" On 11/13/2015 07:23 AM, Paolo Bonzini wrote: > > 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 Ah, ok, got it. Thanks Daniel and Paulo, -corey > >> 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 >> >>