From nobody Mon Feb 9 04:30:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=suse.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 163820395123594.0443286454082; Mon, 29 Nov 2021 08:39:11 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-424-5J12NdBVMJ-mBSaKAcnwzA-1; Mon, 29 Nov 2021 11:39:06 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5F1D483DD22; Mon, 29 Nov 2021 16:39:01 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C5C225F4EE; Mon, 29 Nov 2021 16:39:00 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 40DFF1809C8A; Mon, 29 Nov 2021 16:38:59 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1ATGcvIl017700 for ; Mon, 29 Nov 2021 11:38:57 -0500 Received: by smtp.corp.redhat.com (Postfix) id 4FA141402408; Mon, 29 Nov 2021 16:38:57 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4A33C1402406 for ; Mon, 29 Nov 2021 16:38:57 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2CEF910726A2 for ; Mon, 29 Nov 2021 16:38:57 +0000 (UTC) Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-20-kkFT3GOTNGCf0jdroB6Kcw-1; Mon, 29 Nov 2021 11:38:55 -0500 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01lp2058.outbound.protection.outlook.com [104.47.0.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-14-zpUfJoqROsGFwFJOwVso4A-1; Mon, 29 Nov 2021 17:38:53 +0100 Received: from AM0PR04MB4899.eurprd04.prod.outlook.com (2603:10a6:208:c5::16) by AM0PR0402MB3587.eurprd04.prod.outlook.com (2603:10a6:208:26::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Mon, 29 Nov 2021 16:38:52 +0000 Received: from AM0PR04MB4899.eurprd04.prod.outlook.com ([fe80::c58b:de4e:3ba7:9ef6]) by AM0PR04MB4899.eurprd04.prod.outlook.com ([fe80::c58b:de4e:3ba7:9ef6%4]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021 16:38:52 +0000 Received: from localhost (75.169.35.15) by AM6P191CA0056.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend Transport; Mon, 29 Nov 2021 16:38:51 +0000 X-MC-Unique: 5J12NdBVMJ-mBSaKAcnwzA-1 X-MC-Unique: kkFT3GOTNGCf0jdroB6Kcw-1 X-MC-Unique: zpUfJoqROsGFwFJOwVso4A-1 From: Jim Fehlig To: libvir-list@redhat.com Subject: [PATCH 1/6] libxl: Disable death events after receiving a shutdown event Date: Mon, 29 Nov 2021 09:38:40 -0700 Message-ID: <20211129163845.12713-2-jfehlig@suse.com> In-Reply-To: <20211129163845.12713-1-jfehlig@suse.com> References: <20211129163845.12713-1-jfehlig@suse.com> X-ClientProxiedBy: AM6P191CA0056.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::33) To AM0PR04MB4899.eurprd04.prod.outlook.com (2603:10a6:208:c5::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3e4b9359-e39c-45c6-643c-08d9b356b9e9 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3587: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:628 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: T2NLPHBQf6KQEz/+sc3ueulHZeBpXAb4klaTTSboVgI/J0oKOrQZA0irphp4Luwr0IHARlyiltGiHsGwpoK6/gWtxhBC0PTDREIndOxnHOiPfPOLJAfA6p2JV4RV6aOkgApBLCQYXyxTBI6TD10P8QH9UmgU3wN/NSiHVT0pweDGzJFqV2Zm4qWgqskVpuFn1jkuK6Nq3lRyCnJ4qcI1Jkhc9EBlWUmzYzvrTmWgyc5E6qRwfAumWiRlAvlzHbGJuuyxQOzFV8qR5ZH5eWpKGO67OEEnFRV57KOvw+wV4TzcAwAi0xpmDSVLFP8BpzHJbFxm/OVvDAXBToCQJUJEjK5JcqJNqyz3NyHQNQbBd7rTarJbmJtQ6rWSuLPcCgW3b0aSJjruvSnL01MW0/8xo0yIIPaysxrJIf5Z9CdB/QxqV7rh3yHZklgQUx4pGHZG3iteug64kc4zG6o4z4fxnnimEni6Ek/XvPhH8vke3DBV5jhRqgA40PaZu+8kBmG+uLMkNjb3M8P+CJdRjvRLgiNuH61VM+PIEIs7Ld1YmmDmWfrVF0Speb2XqfobIfqnLtH6kPh8tQWWJgvHzgpUVVSb2qgfLq8p7HEHvjK+Gb1E4ML2ipHDaxFIr5falVxMtVukKOeDJsN/qnS7NZ+5ogSJkXWa4t7k5zyzUBXJsrIl8qL1FiS/RORYiv2yE3ck3jsnTs5Dt3QbHj1erS0poA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR04MB4899.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(6666004)(508600001)(66476007)(83380400001)(86362001)(1076003)(6916009)(6496006)(66556008)(66946007)(186003)(2906002)(36756003)(5660300002)(956004)(8676002)(2616005)(316002)(8936002)(38100700002)(6486002)(26005)(219283001); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Mze1gPIyOzKOfPuIMeT4Vr3+vPKMxnabuW08j2EBOgKb8Elyuya0mSvLevpU?= =?us-ascii?Q?z+yLmflIeRrcDQzDpIEUXS1nXUdVSiSSC7NW/YlwaLb+vmFErQyuIkWbgBLP?= =?us-ascii?Q?/Myn4k32TaXcynLXKdLOSrkpIDCySUx0xuiZgXESnNpO4nquSwQeYMMH5x9K?= =?us-ascii?Q?JwpbgDU8hgJvh6r0Fpl25VnbUgC2vf5QAWrGjr2A2+mlyuVx3SKjxGzX+6ev?= =?us-ascii?Q?LKuGTcatv8kYw8R1qTdv7d0Wcoue24w768GUBBzXNesxicUJo8amWQRzmQRy?= =?us-ascii?Q?mH2pkzKVYjitQEhh3JCdOEYE3Fjig+A0S0/S779rGt9126gUMJeIfN3riSEP?= =?us-ascii?Q?rp2kadMudZus0vH9xQLfgHgldU0vIh13cpftEqRUxTNzcu8ON6pRRdPzk3GK?= =?us-ascii?Q?XaGQ6x9e/3MZSeJwpw4/Ealh2sMODm1NaK4A+mYlvZw9KvbuFcE7XNV8Sfjp?= =?us-ascii?Q?UBiKzfXYLgD46xpPTaYB8/Rg0UvsjoTbaYMZTahT2OSKQIZw8zMyvHxYZVTH?= =?us-ascii?Q?hm9RJEL8DdG4l4FA1R3ac4LPdObSFrBrDr3E7+oqX4/2jbvrlHYAHhsxaHj2?= =?us-ascii?Q?sfKxWWQKPXypvjd/DWWKWUZ00OGlUH8MD2LkQf/u4OLjvyxsWGEud1x6zyZa?= =?us-ascii?Q?zrgRor3Ih1RGvZDtVWuOFke14hhYe21HB475I5z7thvmkNMWT6cmQ6eMuUsQ?= =?us-ascii?Q?igSPKj7VPe38NF1o/XQ77rpR2EuQvWOFgl3q5KYKOaIqYLK0HQ9AiNQ9gUU0?= =?us-ascii?Q?NUjrDoeamo626CSgXWgBSex536F0URA8af2AaEfInwCkWe8yr+lt9CxE8mn4?= =?us-ascii?Q?DdQ5nNohMBQ7z8hkLXNZbPjJb9Vpu76YQu3U62MKq/uTfWGf+1hYXFO7uAV3?= =?us-ascii?Q?uDbB9oHi7V/NVEIksFYpIOHcganaM4BGtWLe3is5RURMZUd4hznjifw6MyFE?= =?us-ascii?Q?/NWPiTr9vwYj8YZ6VCKtf5m0dJZ6lTAxupler80M8vCpQ25183CzGhiUQdcp?= =?us-ascii?Q?pfKxvioDb/n9YelyRMBhRvCT/Iqh/bGoyyjBSjEhxy86IiaG1cD/HQdBOoZc?= =?us-ascii?Q?5ZBoSEKtnvfeJ+Jg/iw+qJ7BukW8mL5zQijPfO3HBzOeF1rbJoKl+T2/Rxq6?= =?us-ascii?Q?g5cHCxhZGiZjugmuQ7UsLIfrEL6JvBKL977muRBXFOBjTWIKZmdUI6x1xYgz?= =?us-ascii?Q?JYXNVRI2P57B9UaxCT7KaIHU6guVXaPqVQe1RBclXyZWVusc32dfrWZv7uHS?= =?us-ascii?Q?XMN7FCaUo1QMf0U0IsWkKQOW42w1t0f7MZSJesr1Nb56cZr82ToNexIlsxnK?= =?us-ascii?Q?xOFJA+NAVbAL25JCeK0UCYYs8RvnEbXSy5jsrdrC9U5d8wCB/V1sn5KynkOv?= =?us-ascii?Q?WVpQpos6jBEuiCMT/Kl8XoiYuXb1yKN1frwBacHW2xfeBoazgwmKXcvIZlcd?= =?us-ascii?Q?/VFhQnryuu4A2puWCWETljuZoWqUPxyJqrI2SRGpPEuZO7CNAG646quobjoF?= =?us-ascii?Q?ZhicBpfB25VtevjsBTg1wLdcjtv127ytyl/2iwtZC6lbltJy6UmbyqaQMCO7?= =?us-ascii?Q?ZtOHtKw7wr2PC5HJKIHE77eJUFkr7G6QLTw2J0Y/egvxIfptx5vnJqHMg8DC?= =?us-ascii?Q?aNRj54UNHQIfb0r3T1Vcx/c=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e4b9359-e39c-45c6-643c-08d9b356b9e9 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB4899.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2021 16:38:52.0194 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7bw5xjuVNUyINOVqXM+sNgNkuGtvk59n8jEe3pXueM7ni8LsvjUaxeF4o8X1be2Kk1ovAUSEDeYWsc/OS6W8WQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3587 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 1ATGcvIl017700 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1638203952398100001 Content-Type: text/plain; charset="utf-8" The libxl driver will handle all domain destruction and cleanup when receiving a domain shutdown event from libxl. Commit fa30ee04a2a introduced the ignoreDeathEvent boolean in the DomainObjPrivate struct to ignore subsequent death events from libxl. But libxl already provides a mechanism to disable death events via libxl_evdisable_domain_death. This patch partially reverts commit fa30ee04a2a and instead uses libxl_evdisable_domain_death to disable subsequent death events when processing a shutdown event. Signed-off-by: Jim Fehlig --- src/libxl/libxl_domain.c | 23 +++++------------------ src/libxl/libxl_domain.h | 3 --- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index db2966a599..bbcbd4c74f 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -616,12 +616,6 @@ static void libxlDomainHandleDeath(libxlDriverPrivate *driver, virDomainObj *vm) { virObjectEvent *dom_event =3D NULL; - libxlDomainObjPrivate *priv =3D vm->privateData; - - if (priv->ignoreDeathEvent) { - priv->ignoreDeathEvent =3D false; - return; - } =20 if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0) return; @@ -671,7 +665,6 @@ libxlDomainEventHandler(void *data, libxl_event *event) } =20 if (event->type =3D=3D LIBXL_EVENT_TYPE_DOMAIN_SHUTDOWN) { - libxlDomainObjPrivate *priv =3D vm->privateData; struct libxlShutdownThreadInfo *shutdown_info =3D NULL; virThread thread; g_autofree char *name =3D NULL; @@ -688,12 +681,9 @@ libxlDomainEventHandler(void *data, libxl_event *event) name =3D g_strdup_printf("ev-%d", event->domid); /* * Cleanup will be handled by the shutdown thread. - * Ignore the forthcoming death event from libxl */ - priv->ignoreDeathEvent =3D true; if (virThreadCreateFull(&thread, false, libxlDomainShutdownThread, name, false, shutdown_info) < 0) { - priv->ignoreDeathEvent =3D false; /* * Not much we can do on error here except log it. */ @@ -859,18 +849,17 @@ libxlDomainDestroyInternal(libxlDriverPrivate *driver, libxlDomainObjPrivate *priv =3D vm->privateData; int ret =3D -1; =20 - /* Ignore next LIBXL_EVENT_TYPE_DOMAIN_DEATH as the caller will handle - * domain death appropriately already (having more info, like the reas= on). - */ - priv->ignoreDeathEvent =3D true; + if (priv->deathW) { + libxl_evdisable_domain_death(cfg->ctx, priv->deathW); + priv->deathW =3D NULL; + } + /* Unlock virDomainObj during destroy, which can take considerable * time on large memory domains. */ virObjectUnlock(vm); ret =3D libxl_domain_destroy(cfg->ctx, vm->def->id, NULL); virObjectLock(vm); - if (ret) - priv->ignoreDeathEvent =3D false; =20 return ret; } @@ -921,8 +910,6 @@ libxlDomainCleanup(libxlDriverPrivate *driver, priv->deathW =3D NULL; } =20 - priv->ignoreDeathEvent =3D false; - if (!!g_atomic_int_dec_and_test(&driver->nactive) && driver->inhibitCa= llback) driver->inhibitCallback(false, driver->inhibitOpaque); =20 diff --git a/src/libxl/libxl_domain.h b/src/libxl/libxl_domain.h index 661610bd3f..981bfc2bca 100644 --- a/src/libxl/libxl_domain.h +++ b/src/libxl/libxl_domain.h @@ -54,9 +54,6 @@ struct _libxlDomainObjPrivate { /* console */ virChrdevs *devs; libxl_evgen_domain_death *deathW; - /* Flag to indicate the upcoming LIBXL_EVENT_TYPE_DOMAIN_DEATH is caus= ed - * by libvirt and should not be handled separately */ - bool ignoreDeathEvent; virThread *migrationDstReceiveThr; unsigned short migrationPort; char *lockState; --=20 2.33.0