From patchwork Thu Feb 2 15:46:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Liu X-Patchwork-Id: 9552317 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5865F60236 for ; Thu, 2 Feb 2017 15:48:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4E50B2811D for ; Thu, 2 Feb 2017 15:48:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 436F728456; Thu, 2 Feb 2017 15:48:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id EF1F92811D for ; Thu, 2 Feb 2017 15:48:46 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cZJau-0003zQ-56; Thu, 02 Feb 2017 15:46:44 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cZJas-0003yD-Jm for xen-devel@lists.xenproject.org; Thu, 02 Feb 2017 15:46:42 +0000 Received: from [193.109.254.147] by server-7.bemta-6.messagelabs.com id 75/69-29440-16453985; Thu, 02 Feb 2017 15:46:41 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmkeJIrShJLcpLzFFi42JxWrrBXjcxZHK EwcS/Yhbft0xmcmD0OPzhCksAYxRrZl5SfkUCa8azY+4FmwQqXt38z9zA2M3TxcjJISHgL7F5 wzMWEJtNQFniZ2cvG4gtIqAn0XTgOSOIzSyQJ3Ho9BFmEFtYwEni2e5PTCA2i4CKxJs3V8Hqe QXMJfb/O84GMVNeYlfbRdYuRg4OTgELif+vDUDCQkAlT0/fYYKwFSQ6ph9jgmgVlDg58wkLxC oJiYMvXjBPYOSdhSQ1C0lqASPTKkaN4tSistQiXSMDvaSizPSMktzEzBxdQwMzvdzU4uLE9NS cxKRiveT83E2MwMBhAIIdjL+WBRxilORgUhLlnaI1OUKILyk/pTIjsTgjvqg0J7X4EKMMB4eS BO/sYKCcYFFqempFWmYOMIRh0hIcPEoivHEgad7igsTc4sx0iNQpRkUpcd4ckIQASCKjNA+uD RY3lxhlpYR5GYEOEeIpSC3KzSxBlX/FKM7BqCTMWwMyhSczrwRu+iugxUxAi38+ngSyuCQRIS XVwBgr2DeJJVRVTph9Z9afilT/VfoJdj+9b+RxXos8q/HGnVXdwUAq9eY7H49D58/n5zifuSG 1z/RE7TK+wzGts25KJLYu/lHzsv1OYPyT60p2nJtMWedFGbUc9ite7KNUVq1YkfzbtdysqezN zisMD35Y9R6dWzM/s+Cmys60hOSQ2UtCl7z8qcRSnJFoqMVcVJwIAGPOtj2WAgAA X-Env-Sender: prvs=1999550ca=wei.liu2@citrix.com X-Msg-Ref: server-4.tower-27.messagelabs.com!1486050398!84279518!2 X-Originating-IP: [66.165.176.63] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n, received_headers: No Received headers X-StarScan-Received: X-StarScan-Version: 9.1.1; banners=-,-,- X-VirusChecked: Checked Received: (qmail 17913 invoked from network); 2 Feb 2017 15:46:41 -0000 Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63) by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP; 2 Feb 2017 15:46:41 -0000 X-IronPort-AV: E=Sophos;i="5.33,325,1477958400"; d="scan'208";a="412684231" From: Wei Liu To: Xen-devel Date: Thu, 2 Feb 2017 15:46:37 +0000 Message-ID: <20170202154637.1478-3-wei.liu2@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170202154637.1478-1-wei.liu2@citrix.com> References: <20170202154637.1478-1-wei.liu2@citrix.com> MIME-Version: 1.0 Cc: Ian Jackson , Wei Liu , Fatih Acar Subject: [Xen-devel] [PATCH 2/2] xl: disable events earlier for shutdown event X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP We need to disable event machinery when the guest shuts down. It doesn't really matter where we disable it as long as it is within the branch for shutdown event. Move the code snippet before handle_domain_death, so that d_config is not yet updated and we have the correct ->num_disks. And the free diskws and set it to NULL, so that diskws gets automatically set up again when xl goes over the domain creation code path. Reported-by: Fatih Acar Signed-off-by: Wei Liu --- Cc: Ian Jackson Cc: Fatih Acar Fatih, please test this series to see if it fixes your issue. Ian, backport candidate? --- tools/libxl/xl_cmdimpl.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 9bf10dfcb2..7df6db1ec9 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -3137,6 +3137,11 @@ start: LOG("Domain %u has shut down, reason code %d 0x%x", domid, event->u.domain_shutdown.shutdown_reason, event->u.domain_shutdown.shutdown_reason); + libxl_evdisable_domain_death(ctx, deathw); + deathw = NULL; + evdisable_disk_ejects(diskws, d_config.num_disks); + free(diskws); + diskws = NULL; switch (handle_domain_death(&domid, event, &d_config)) { case DOMAIN_RESTART_SOFT_RESET: domid_soft_reset = domid; @@ -3154,9 +3159,6 @@ start: /* Otherwise fall through and restart. */ case DOMAIN_RESTART_NORMAL: libxl_event_free(ctx, event); - libxl_evdisable_domain_death(ctx, deathw); - deathw = NULL; - evdisable_disk_ejects(diskws, d_config.num_disks); /* discard any other events which may have been generated */ while (!(ret = libxl_event_check(ctx, &event, LIBXL_EVENTMASK_ALL, 0,0))) {