From patchwork Thu Jul 27 00:16:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venu Busireddy X-Patchwork-Id: 9866081 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 327556038F for ; Thu, 27 Jul 2017 00:18:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 24BE3287C5 for ; Thu, 27 Jul 2017 00:18:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 19C80287D7; Thu, 27 Jul 2017 00:18:32 +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, UNPARSEABLE_RELAY 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 99762287C5 for ; Thu, 27 Jul 2017 00:18:31 +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 1daWTS-0004OD-Qi; Thu, 27 Jul 2017 00:16:18 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1daWTR-0004Nt-Mz for xen-devel@lists.xen.org; Thu, 27 Jul 2017 00:16:17 +0000 Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id C4/98-01987-0D039795; Thu, 27 Jul 2017 00:16:16 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeJIrShJLcpLzFFi42LpnVTnqnvBoDL S4OFLYYslHxezODB6HN39mymAMYo1My8pvyKBNePiyaiC07wV/yauZ2pgnMTVxcjFISQwmUmi /9pa9i5GTiDnN6PEla2hEImNjBK3Pz5jhXAmMkqsWdcOVsUmYCBx9HAPWEJEoI1RYvWJy4wgC WaBGom+bytYQWxhgQCJeZM/sYHYLAKqEjuvTGIBsXkFbCUe3F0BFpcQkJNYuv06cxcjBwengJ 3Es9sZEFfYSrQubGGFKDGW6JvVxzKBkW8BI8MqRo3i1KKy1CJdIyO9pKLM9IyS3MTMHF1DA2O 93NTi4sT01JzEpGK95PzcTYzAQKlnYGDcwTj1hN8hRkkOJiVR3kmmFZFCfEn5KZUZicUZ8UWl OanFhxhlODiUJHgX6VdGCgkWpaanVqRl5gBDFiYtwcGjJMKrDQxbId7igsTc4sx0iNQpRmOOD avXf2HieDXh/zcmIZa8/LxUKXHefyCTBEBKM0rz4AbBYukSo6yUMC8jAwODEE9BalFuZgmq/C tGcQ5GJWHeGyBTeDLzSuD2vQI6hQnolDkzSkFOKUlESEk1MFptbDnOlrptmppoed2Bg15Jq/r 0bIrqqzvsrUwVPuhMYv8/j/Vq6UtTfmum2Z0My5QniNd6tMQwHru3cr3Kg7Dwx/MtHQQtAlUN dvy5rGH18bbmW5vYhmOHnl/Oc20/HSIyteKN8wNO8yS74GvzT+pcf1DTMidsfeysKe47udfyL nL/rRTYqcRSnJFoqMVcVJwIAPG3cJmgAgAA X-Env-Sender: venu.busireddy@oracle.com X-Msg-Ref: server-10.tower-31.messagelabs.com!1501114574!106590140!1 X-Originating-IP: [141.146.126.69] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuNjkgPT4gMjc3MjE4\n X-StarScan-Received: X-StarScan-Version: 9.4.25; banners=-,-,- X-VirusChecked: Checked Received: (qmail 36291 invoked from network); 27 Jul 2017 00:16:16 -0000 Received: from aserp1040.oracle.com (HELO aserp1040.oracle.com) (141.146.126.69) by server-10.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 27 Jul 2017 00:16:16 -0000 Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id v6R0G9JY029685 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Jul 2017 00:16:09 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id v6R0G90K000562 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Jul 2017 00:16:09 GMT Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id v6R0G81V032302; Thu, 27 Jul 2017 00:16:08 GMT Received: from ban25uut183.us.oracle.com (/10.153.74.183) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 26 Jul 2017 17:16:08 -0700 From: Venu Busireddy To: venu.busireddy@oracle.com, xen-devel@lists.xen.org, Ian Jackson , Wei Liu Date: Wed, 26 Jul 2017 19:16:39 -0500 Message-Id: <20170727001639.5505-3-venu.busireddy@oracle.com> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170727001639.5505-1-venu.busireddy@oracle.com> References: <20170727001639.5505-1-venu.busireddy@oracle.com> X-Source-IP: aserv0021.oracle.com [141.146.126.233] Cc: Andrew Cooper , Jan Beulich Subject: [Xen-devel] [PATCH v2 2/2] xl: Register the AER event handler to handle AER errors. 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: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP When a guest is created, register the AER event handler to handle the AER errors. When an AER error occurs, the handler will forcibly remove the erring PCIe device from the guest. Signed-off-by: Venu Busireddy --- tools/xl/xl_vmcontrol.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c index 89c2b25..10a48a9 100644 --- a/tools/xl/xl_vmcontrol.c +++ b/tools/xl/xl_vmcontrol.c @@ -966,6 +966,15 @@ start: LOG("Waiting for domain %s (domid %u) to die [pid %ld]", d_config.c_info.name, domid, (long)getpid()); + ret = libxl_reg_aer_events_handler(ctx, domid); + if (ret) { + /* + * This error may not be severe enough to fail the creation of the VM. + * Log the error, and continue with the creation. + */ + LOG("libxl_reg_aer_events_handler() failed, ret = 0x%08x", ret); + } + ret = libxl_evenable_domain_death(ctx, domid, 0, &deathw); if (ret) goto out; @@ -993,6 +1002,7 @@ 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_unreg_aer_events_handler(ctx, domid); switch (handle_domain_death(&domid, event, &d_config)) { case DOMAIN_RESTART_SOFT_RESET: domid_soft_reset = domid; @@ -1059,6 +1069,7 @@ start: case LIBXL_EVENT_TYPE_DOMAIN_DEATH: LOG("Domain %u has been destroyed.", domid); + libxl_unreg_aer_events_handler(ctx, domid); libxl_event_free(ctx, event); ret = 0; goto out;