From nobody Sat Apr 20 14:23:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652345764; cv=none; d=zohomail.com; s=zohoarc; b=R+0WOnVjZavuIaG1K6GZUskaKDpLFU6SWeaSJxilfdkfUiKInHLQiz15E3BSNbOvh4A6i1PWbulTgEuPGXpRVU+SHiux9Yave+vmV2M230V6/GhIa1Sbp/GJJwt0McOgyuEkhtk9AYU4+IDhHThA07l878h2WsaE7vX1oaZogSA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652345764; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WG3VkUvJGLP1+7Yu4PkA4c5tV0q1xPVs1S8+Vsr5FBk=; b=lMTjLSPRv+iShejgmgm/88vkVboooYWDxR+da2zjWAF8L/s3Uy1UACoUzXn3mH83WzsseY9VbHgghNJ4ODrqtdoL6vUrZRtWjnOKa+K8BuGywbM762Qhq1y7o970SRCSTfRxSviUULxF7/Kzm2rLwc/ujL97nF7EC5Im+5RXvvY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 165234576423860.10072023922146; Thu, 12 May 2022 01:56:04 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-404-e5Q1991mNRyGfFQGW2GQiQ-1; Thu, 12 May 2022 04:55:55 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5BEC7101AA46; Thu, 12 May 2022 08:55:53 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 35E57416369; Thu, 12 May 2022 08:55:53 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id A25111932218; Thu, 12 May 2022 08:55:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2D4B11932210 for ; Thu, 12 May 2022 08:55:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 8C824416361; Thu, 12 May 2022 08:55:50 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 33E8141617B for ; Thu, 12 May 2022 08:55:49 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 880482445EB; Thu, 12 May 2022 10:55:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652345763; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=WG3VkUvJGLP1+7Yu4PkA4c5tV0q1xPVs1S8+Vsr5FBk=; b=XmMbfLfrUymhzdoogLbAAPAF/5SAxUN3S5qtMPBABNsz48SThJuxaGCZRl4m0VC5CDWNCw BXmqg/z7wcUcwy7BDGM44kn/USwidCd6+ty1GI+iSmf8VHKxn+Hs90VCVmuK6NTtcnIMsP wh7H9PMqFRiQ1XLCwfJ1oPkDenMIdO0= X-MC-Unique: e5Q1991mNRyGfFQGW2GQiQ-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 1/4] qemu: Drop QEMU_CAPS_MIGRATION_EVENT Date: Thu, 12 May 2022 10:55:44 +0200 Message-Id: <75d57d592bee70e50ba515c22784d4eeb1348704.1652345711.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652345766015100001 Content-Type: text/plain; charset="utf-8" All QEMU versions we care about already support migration events. Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- src/qemu/qemu_capabilities.c | 3 +- src/qemu/qemu_capabilities.h | 2 +- src/qemu/qemu_driver.c | 6 +-- src/qemu/qemu_migration.c | 37 ++++--------------- src/qemu/qemu_migration_params.c | 25 ++++++------- .../qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 - .../caps_3.1.0.x86_64.xml | 1 - .../caps_4.0.0.aarch64.xml | 1 - .../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 - .../caps_4.0.0.riscv32.xml | 1 - .../caps_4.0.0.riscv64.xml | 1 - .../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 - .../caps_4.0.0.x86_64.xml | 1 - .../caps_4.1.0.x86_64.xml | 1 - .../caps_4.2.0.aarch64.xml | 1 - .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 - .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 - .../caps_4.2.0.x86_64.xml | 1 - .../caps_5.0.0.aarch64.xml | 1 - .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 - .../caps_5.0.0.riscv64.xml | 1 - .../caps_5.0.0.x86_64.xml | 1 - .../qemucapabilitiesdata/caps_5.1.0.sparc.xml | 1 - .../caps_5.1.0.x86_64.xml | 1 - .../caps_5.2.0.aarch64.xml | 1 - .../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 - .../caps_5.2.0.riscv64.xml | 1 - .../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 - .../caps_5.2.0.x86_64.xml | 1 - .../caps_6.0.0.aarch64.xml | 1 - .../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 - .../caps_6.0.0.x86_64.xml | 1 - .../caps_6.1.0.x86_64.xml | 1 - .../caps_6.2.0.aarch64.xml | 1 - .../qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 1 - .../caps_6.2.0.x86_64.xml | 1 - .../caps_7.0.0.aarch64.xml | 1 - .../qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 1 - .../caps_7.0.0.x86_64.xml | 1 - .../caps_7.1.0.x86_64.xml | 1 - 40 files changed, 22 insertions(+), 86 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 4a03f4794b..a59d839d85 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -335,7 +335,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "pci-serial", /* QEMU_CAPS_DEVICE_PCI_SERIAL */ "aarch64-off", /* QEMU_CAPS_CPU_AARCH64_OFF */ "vhost-user-multiqueue", /* X_QEMU_CAPS_VHOSTUSER_MULTIQUEUE= */ - "migration-event", /* QEMU_CAPS_MIGRATION_EVENT */ + "migration-event", /* X_QEMU_CAPS_MIGRATION_EVENT */ =20 /* 190 */ "gpex-pcihost", /* QEMU_CAPS_OBJECT_GPEX */ @@ -1237,7 +1237,6 @@ struct virQEMUCapsStringFlags virQEMUCapsMigration[] = =3D { =20 /* Use virQEMUCapsQMPSchemaQueries for querying parameters of events */ struct virQEMUCapsStringFlags virQEMUCapsEvents[] =3D { - { "MIGRATION", QEMU_CAPS_MIGRATION_EVENT }, { "VSERPORT_CHANGE", QEMU_CAPS_VSERPORT_CHANGE }, { "BLOCK_WRITE_THRESHOLD", QEMU_CAPS_BLOCK_WRITE_THRESHOLD }, { "DUMP_COMPLETED", QEMU_CAPS_DUMP_COMPLETED }, diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index baddb059b2..59c09903f3 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -309,7 +309,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ QEMU_CAPS_DEVICE_PCI_SERIAL, /* -device pci-serial */ QEMU_CAPS_CPU_AARCH64_OFF, /* -cpu ...,aarch64=3Doff */ X_QEMU_CAPS_VHOSTUSER_MULTIQUEUE, /* vhost-user with -netdev queues=3D= */ - QEMU_CAPS_MIGRATION_EVENT, /* MIGRATION event */ + X_QEMU_CAPS_MIGRATION_EVENT, /* MIGRATION event */ =20 /* 190 */ QEMU_CAPS_OBJECT_GPEX, /* have generic PCI host controller */ diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index e3582f62a7..d75606f78c 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -12503,17 +12503,13 @@ qemuDomainGetJobInfoMigrationStats(virQEMUDriver = *driver, virDomainObj *vm, virDomainJobData *jobData) { - qemuDomainObjPrivate *priv =3D vm->privateData; qemuDomainJobDataPrivate *privStats =3D jobData->privateData; =20 - bool events =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVE= NT); - if (jobData->status =3D=3D VIR_DOMAIN_JOB_STATUS_ACTIVE || jobData->status =3D=3D VIR_DOMAIN_JOB_STATUS_MIGRATING || jobData->status =3D=3D VIR_DOMAIN_JOB_STATUS_HYPERVISOR_COMPLETED = || jobData->status =3D=3D VIR_DOMAIN_JOB_STATUS_POSTCOPY) { - if (events && - jobData->status !=3D VIR_DOMAIN_JOB_STATUS_ACTIVE && + if (jobData->status !=3D VIR_DOMAIN_JOB_STATUS_ACTIVE && qemuMigrationAnyFetchStats(driver, vm, VIR_ASYNC_JOB_NONE, jobData, NULL) < 0) return -1; diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index b735bdb391..25af291dc6 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1735,10 +1735,8 @@ qemuMigrationJobCheckStatus(virQEMUDriver *driver, virDomainJobData *jobData =3D priv->job.current; qemuDomainJobDataPrivate *privJob =3D jobData->privateData; g_autofree char *error =3D NULL; - bool events =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVE= NT); =20 - if (!events || - privJob->stats.mig.status =3D=3D QEMU_MONITOR_MIGRATION_STATUS_ERR= OR) { + if (privJob->stats.mig.status =3D=3D QEMU_MONITOR_MIGRATION_STATUS_ERR= OR) { if (qemuMigrationAnyFetchStats(driver, vm, asyncJob, jobData, &err= or) < 0) return -1; } @@ -1890,7 +1888,6 @@ qemuMigrationSrcWaitForCompletion(virQEMUDriver *driv= er, { qemuDomainObjPrivate *priv =3D vm->privateData; virDomainJobData *jobData =3D priv->job.current; - bool events =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVE= NT); int rv; =20 jobData->status =3D VIR_DOMAIN_JOB_STATUS_MIGRATING; @@ -1900,24 +1897,14 @@ qemuMigrationSrcWaitForCompletion(virQEMUDriver *dr= iver, if (rv < 0) return rv; =20 - if (events) { - if (virDomainObjWait(vm) < 0) { - if (virDomainObjIsActive(vm)) - jobData->status =3D VIR_DOMAIN_JOB_STATUS_FAILED; - return -2; - } - } else { - /* Poll every 50ms for progress & to allow cancellation */ - struct timespec ts =3D { .tv_sec =3D 0, .tv_nsec =3D 50 * 1000= * 1000ull }; - - virObjectUnlock(vm); - nanosleep(&ts, NULL); - virObjectLock(vm); + if (virDomainObjWait(vm) < 0) { + if (virDomainObjIsActive(vm)) + jobData->status =3D VIR_DOMAIN_JOB_STATUS_FAILED; + return -2; } } =20 - if (events) - ignore_value(qemuMigrationAnyFetchStats(driver, vm, asyncJob, jobD= ata, NULL)); + ignore_value(qemuMigrationAnyFetchStats(driver, vm, asyncJob, jobData,= NULL)); =20 qemuDomainJobDataUpdateTime(jobData); qemuDomainJobDataUpdateDowntime(jobData); @@ -1939,13 +1926,9 @@ qemuMigrationDstWaitForCompletion(virQEMUDriver *dri= ver, virDomainAsyncJob asyncJob, bool postcopy) { - qemuDomainObjPrivate *priv =3D vm->privateData; unsigned int flags =3D 0; int rv; =20 - if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT)) - return 0; - VIR_DEBUG("Waiting for incoming migration to complete"); =20 if (postcopy) @@ -4028,7 +4011,6 @@ qemuMigrationSrcRun(virQEMUDriver *driver, virErrorPtr orig_err =3D NULL; unsigned int cookieFlags =3D 0; bool abort_on_error =3D !!(flags & VIR_MIGRATE_ABORT_ON_ERROR); - bool events =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVE= NT); bool bwParam =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PA= RAM_BANDWIDTH); bool storageMigration =3D flags & (VIR_MIGRATE_NON_SHARED_DISK | VIR_M= IGRATE_NON_SHARED_INC); bool cancel =3D false; @@ -4071,8 +4053,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver, return -1; } =20 - if (events) - priv->signalIOError =3D abort_on_error; + priv->signalIOError =3D abort_on_error; =20 if (flags & VIR_MIGRATE_PERSIST_DEST) { if (persist_xml) { @@ -4364,9 +4345,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver, ret =3D 0; =20 cleanup: - if (events) - priv->signalIOError =3D false; - + priv->signalIOError =3D false; priv->migMaxBandwidth =3D restore_max_bandwidth; virErrorRestore(&orig_err); =20 diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index df2384b213..ec288b9fa1 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -1419,26 +1419,23 @@ qemuMigrationCapsCheck(virQEMUDriver *driver, } } =20 - if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT)) { - migEvent =3D virBitmapNew(QEMU_MIGRATION_CAP_LAST); + migEvent =3D virBitmapNew(QEMU_MIGRATION_CAP_LAST); =20 - ignore_value(virBitmapSetBit(migEvent, QEMU_MIGRATION_CAP_EVENTS)); + ignore_value(virBitmapSetBit(migEvent, QEMU_MIGRATION_CAP_EVENTS)); =20 - if (!(json =3D qemuMigrationCapsToJSON(migEvent, migEvent))) - return -1; + if (!(json =3D qemuMigrationCapsToJSON(migEvent, migEvent))) + return -1; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) - return -1; + if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + return -1; =20 - rc =3D qemuMonitorSetMigrationCapabilities(priv->mon, &json); + rc =3D qemuMonitorSetMigrationCapabilities(priv->mon, &json); =20 - qemuDomainObjExitMonitor(vm); + qemuDomainObjExitMonitor(vm); =20 - if (rc < 0) { - virResetLastError(); - VIR_DEBUG("Cannot enable migration events; clearing capability= "); - virQEMUCapsClear(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT); - } + if (rc < 0) { + virResetLastError(); + VIR_DEBUG("Cannot enable migration events"); } =20 /* Migration events capability must always be enabled, clearing it from diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_3.1.0.ppc64.xml index 23116d61f7..cc6e75884b 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml @@ -57,7 +57,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_3.1.0.x86_64.xml index 8ca3ac48fe..27be36f0ab 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml @@ -78,7 +78,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_4.0.0.aarch64.xml index 5adf904fc4..7e0b8fbddf 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml @@ -60,7 +60,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_4.0.0.ppc64.xml index a84adc2610..19bbbd1de3 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml @@ -59,7 +59,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml b/tests/qemu= capabilitiesdata/caps_4.0.0.riscv32.xml index c494254c4d..ef6f04f54b 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml @@ -62,7 +62,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml b/tests/qemu= capabilitiesdata/caps_4.0.0.riscv64.xml index d2582fa297..7c65aff290 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml @@ -62,7 +62,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_4.0.0.s390x.xml index 4f36186044..9b5ed96ba3 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml @@ -36,7 +36,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_4.0.0.x86_64.xml index 18e5ebd4f4..3cf6a66389 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml @@ -77,7 +77,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_4.1.0.x86_64.xml index 12c5ebe6f3..5daa7bda75 100644 --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml @@ -77,7 +77,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_4.2.0.aarch64.xml index ee536b7b63..833bf955f9 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml @@ -61,7 +61,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_4.2.0.ppc64.xml index 10f5a9e2c5..1586f28ca5 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml @@ -59,7 +59,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_4.2.0.s390x.xml index 069777a49b..ce5b782afd 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml @@ -36,7 +36,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_4.2.0.x86_64.xml index 6b61214a0b..9ee4c0534d 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml @@ -78,7 +78,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_5.0.0.aarch64.xml index 4fd02e786d..29ee31473f 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml @@ -63,7 +63,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_5.0.0.ppc64.xml index f2f3558fdc..868b3b0d0a 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml @@ -60,7 +60,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemu= capabilitiesdata/caps_5.0.0.riscv64.xml index 557949d6d6..3b58e7fece 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml @@ -62,7 +62,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.0.0.x86_64.xml index f301d8a926..bee5a84cf9 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml @@ -78,7 +78,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml b/tests/qemuca= pabilitiesdata/caps_5.1.0.sparc.xml index 3a330ebdc0..e6a3ed5ec0 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml @@ -25,7 +25,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.1.0.x86_64.xml index 53fcbf3417..070f64cb1c 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml @@ -78,7 +78,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_5.2.0.aarch64.xml index 824224302c..8e17532f3a 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml @@ -62,7 +62,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_5.2.0.ppc64.xml index b949f88b5a..b0b5fe3271 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml @@ -59,7 +59,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml b/tests/qemu= capabilitiesdata/caps_5.2.0.riscv64.xml index 873923992d..7cb4383693 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml @@ -61,7 +61,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_5.2.0.s390x.xml index 5e9560d7b7..30d10236e9 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml @@ -35,7 +35,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.2.0.x86_64.xml index 3998da9253..cad4ed40e6 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml @@ -77,7 +77,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_6.0.0.aarch64.xml index 51d3628eeb..4b4cc2d3aa 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml @@ -61,7 +61,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_6.0.0.s390x.xml index 2e5d0f197a..06543071aa 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml @@ -35,7 +35,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.0.0.x86_64.xml index 3498d6255b..8c61bf8a84 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml @@ -76,7 +76,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.1.0.x86_64.xml index 7127e5d18a..afd8f606eb 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml @@ -76,7 +76,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_6.2.0.aarch64.xml index e45682a648..86fc46918f 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml @@ -66,7 +66,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_6.2.0.ppc64.xml index 9c9d9aa08e..d5a1663c15 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml @@ -59,7 +59,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.2.0.x86_64.xml index 5eae115b28..19605d93ae 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml @@ -76,7 +76,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_7.0.0.aarch64.xml index c20b360e01..e24e2235fb 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml @@ -66,7 +66,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_7.0.0.ppc64.xml index 945227b7f4..6c51e27f46 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml @@ -65,7 +65,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.0.0.x86_64.xml index 48fef44c9a..7523b92e6b 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml @@ -76,7 +76,6 @@ - diff --git a/tests/qemucapabilitiesdata/caps_7.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.1.0.x86_64.xml index 332d9a1ac3..f598950cc3 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0.x86_64.xml @@ -76,7 +76,6 @@ - --=20 2.35.1 From nobody Sat Apr 20 14:23:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652345766; cv=none; d=zohomail.com; s=zohoarc; b=MPX0bFtYF7we+zzlJyk35xV4qdKC9y9DHOafj7RTmrwSeCgMAFt9SHusNBcn53YatKirYFwlq/9wBPp6PGK0/76OgPsJ4GPzkU0Lw0uC9pqPDXUyCITsLcEEvrddNBTvWpkbbim3VYwNYtcOImkxzgjuve9/mQx2+YU3o0Bruno= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652345766; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fRJ4FO44fN5ZKxjHnPIbKsrVN4sjMvExs38790LjqfI=; b=BFCnOriIzxjKfcWx1jxunT3pJHNWAl73d/7FdX6uUjXjaCTtWi+esvORsBPYOm0voErlw7O/Y6t9dcpCLhmiE18B3BLPRSqXfkllZ44dJkSGBZCN05sdKehhEl0ZOSZ/T0/fxMaIYuQY/+F/ZLbanuquAgMS6KhsxbdkDg04/pY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1652345766245850.8339162433465; Thu, 12 May 2022 01:56:06 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-656-XR8fbtV0NoGl0kfrcAsOOg-1; Thu, 12 May 2022 04:55:56 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 67F99805F75; Thu, 12 May 2022 08:55:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 191D5C2810A; Thu, 12 May 2022 08:55:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id EDC2D1932231; Thu, 12 May 2022 08:55:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2AC71193220C for ; Thu, 12 May 2022 08:55:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 3A6FF41617C; Thu, 12 May 2022 08:55:50 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1B1B541617F for ; Thu, 12 May 2022 08:55:49 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 89BF02445EC; Thu, 12 May 2022 10:55:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652345765; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=fRJ4FO44fN5ZKxjHnPIbKsrVN4sjMvExs38790LjqfI=; b=JvBSqNGY9FPscFJNv02y7VpNlRKi0GTkjaVvhCG7bA8IjYUI4SCoYMhn7hA0ARfa6ihvPR Nvcbz7rmI4RhHW9sKhvDP7LM10AcyLE6BfRCQ19alN04UCnLx9o1Nn6XrfY4sRL0zhmqHF 4cEyOgjD5nb8GT9T1VaLUR+WNgo72SQ= X-MC-Unique: XR8fbtV0NoGl0kfrcAsOOg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 2/4] qemu: Refactor qemuDomainGetJobInfoMigrationStats Date: Thu, 12 May 2022 10:55:45 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.8 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652345767988100003 Content-Type: text/plain; charset="utf-8" The code was a bit too complicated, especially after removing the check for QEMU_CAPS_MIGRATION_EVENT. Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- src/qemu/qemu_driver.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d75606f78c..b8af1d6817 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -12505,26 +12505,32 @@ qemuDomainGetJobInfoMigrationStats(virQEMUDriver = *driver, { qemuDomainJobDataPrivate *privStats =3D jobData->privateData; =20 - if (jobData->status =3D=3D VIR_DOMAIN_JOB_STATUS_ACTIVE || - jobData->status =3D=3D VIR_DOMAIN_JOB_STATUS_MIGRATING || - jobData->status =3D=3D VIR_DOMAIN_JOB_STATUS_HYPERVISOR_COMPLETED = || - jobData->status =3D=3D VIR_DOMAIN_JOB_STATUS_POSTCOPY) { - if (jobData->status !=3D VIR_DOMAIN_JOB_STATUS_ACTIVE && - qemuMigrationAnyFetchStats(driver, vm, VIR_ASYNC_JOB_NONE, - jobData, NULL) < 0) - return -1; - - if (jobData->status =3D=3D VIR_DOMAIN_JOB_STATUS_ACTIVE && - privStats->statsType =3D=3D QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATI= ON && + switch (jobData->status) { + case VIR_DOMAIN_JOB_STATUS_ACTIVE: + if (privStats->statsType =3D=3D QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATI= ON && qemuMigrationSrcFetchMirrorStats(driver, vm, VIR_ASYNC_JOB_NON= E, jobData) < 0) return -1; + break; =20 - if (qemuDomainJobDataUpdateTime(jobData) < 0) + case VIR_DOMAIN_JOB_STATUS_MIGRATING: + case VIR_DOMAIN_JOB_STATUS_HYPERVISOR_COMPLETED: + case VIR_DOMAIN_JOB_STATUS_POSTCOPY: + if (qemuMigrationAnyFetchStats(driver, vm, VIR_ASYNC_JOB_NONE, + jobData, NULL) < 0) return -1; + break; + + case VIR_DOMAIN_JOB_STATUS_NONE: + case VIR_DOMAIN_JOB_STATUS_PAUSED: + case VIR_DOMAIN_JOB_STATUS_COMPLETED: + case VIR_DOMAIN_JOB_STATUS_FAILED: + case VIR_DOMAIN_JOB_STATUS_CANCELED: + default: + return 0; } =20 - return 0; + return qemuDomainJobDataUpdateTime(jobData); } =20 =20 --=20 2.35.1 From nobody Sat Apr 20 14:23:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652345760; cv=none; d=zohomail.com; s=zohoarc; b=RR8vudMiMGGOP7goMUHb47XsGBPHGRtq8gGBj70vhW3Ds+kStA+H8tgMuSCTyyjF0CHm3AARpTDxwiv7eNdieZASar+Via227JolDZPCMnq9q2hy/2DvQsbEKQsRBZ7egYZWk1yv6i6yWcHWv00UBn2OIFcjpO+Disy4UmDz8Mc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652345760; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KrppB4mNund8mDkwr4FplubsjaVc6pr7p/uyi2KTiFQ=; b=kah7v/fiOzbRYgF0rH39NXYvVhjslIS/HsmLnE7ux6c/UyHG/tXuroHAGnKX+etWvmNTc7SOlhViMbMnJDNozWQc1BFBjdHUyMwS6nK/2nRXkM4DtycRFfs046QW8i9+ldAx7FPnQKG9p1Zp656kE9k/LTk6AlP/S6Q90hEFtEQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1652345760158663.1040256092147; Thu, 12 May 2022 01:56:00 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-543-34OAgJZ_P_OXogIYTDpcVw-1; Thu, 12 May 2022 04:55:56 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D43DC29324B4; Thu, 12 May 2022 08:55:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id B625E40CF8F5; Thu, 12 May 2022 08:55:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 54A27193223D; Thu, 12 May 2022 08:55:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2AF62193220D for ; Thu, 12 May 2022 08:55:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 1EE54C2810B; Thu, 12 May 2022 08:55:50 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F41FCC2810A for ; Thu, 12 May 2022 08:55:49 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 8AFC22445EE; Thu, 12 May 2022 10:55:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652345759; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=KrppB4mNund8mDkwr4FplubsjaVc6pr7p/uyi2KTiFQ=; b=T4bYl+PJ/aBic0c40PBE0OGS0rDZWjJX9VGN80ZYwp7tKkB5TMzPpF9GXLWueZEm17cCSb agdD6OeyXSNd3TRi6/BLIIcxjPCIMKjXqteSF+N5WWZLVrGxFRbyzXd4+T+JLzc18VD6oU lRW+ifYP8FA43VEftb6XrUPHP0YX0zo= X-MC-Unique: 34OAgJZ_P_OXogIYTDpcVw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 3/4] qemu: Make migration events mandatory Date: Thu, 12 May 2022 10:55:46 +0200 Message-Id: <1fd87ad16c7ae98a386c9083140e3a17f5abe07e.1652345711.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.8 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652345761963100001 Content-Type: text/plain; charset="utf-8" All QEMU versions we care about support migration events and we should be able to enable the associated capability when connecting to the monitor. Failure to do so is thus considered fatal now. Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- src/qemu/qemu_migration_params.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index ec288b9fa1..26754f03f8 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -1433,10 +1433,8 @@ qemuMigrationCapsCheck(virQEMUDriver *driver, =20 qemuDomainObjExitMonitor(vm); =20 - if (rc < 0) { - virResetLastError(); - VIR_DEBUG("Cannot enable migration events"); - } + if (rc < 0) + return -1; =20 /* Migration events capability must always be enabled, clearing it from * migration capabilities bitmap makes sure it won't be touched anywhe= re --=20 2.35.1 From nobody Sat Apr 20 14:23:48 2024 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; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652345825; cv=none; d=zohomail.com; s=zohoarc; b=H+Lh2nZyyluYrNITfxgH6O1hD3gcEioKHMS53TajvmnxhknbnJR09MXYVSM4hkFAgh6QmHnvMgPwqWY39uWb61oKFOWLKa3If9JLbVLwDxOVYJhMgY5wS9VIa1oaEminecCck1+Agh85qW1BIRu2F25BcYcF41v+yW6NMyNWIaI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652345825; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=u1es/W1l1ejjiFimLVngbBJJquN9wECl0tRhUGfrJqI=; b=ZVT0V3/wRkgdng6zRNUm3nU65k3r6i4n8tyV1hkJFDf4kAElK1FZuFOgmddSmbuvaztr+9KqWI4WlnX0sbcVij41EJHOE7M3+Rd1+FMmDiASLIIiemh0vItQEwQtWLyrJ5CXYuIJmAB7oi1qR39BFkobI1o8bP0x7F+RevevRjQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) 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 165234582581224.137184378041184; Thu, 12 May 2022 01:57:05 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-397--yxR6XTbMDCNSdx_gAnp3A-1; Thu, 12 May 2022 04:55:59 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5CE1B1801387; Thu, 12 May 2022 08:55:56 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 47B8241617B; Thu, 12 May 2022 08:55:56 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 3607A193220C; Thu, 12 May 2022 08:55:56 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 280EC1932207 for ; Thu, 12 May 2022 08:55:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id D32F65690DC; Thu, 12 May 2022 08:55:49 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9785C56BEED for ; Thu, 12 May 2022 08:55:49 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 8C58D2445EF; Thu, 12 May 2022 10:55:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652345824; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=u1es/W1l1ejjiFimLVngbBJJquN9wECl0tRhUGfrJqI=; b=H4igfTY8wMyziwM9rNwlCdK3hwFw2MqHjTPkayZx8Lp6SmggeHhPgMAEAXtxKDc+3tUV1b F3YZJaq3wzL4ax6l0ZUMcgKF0uLvXIu1vWhd+lESHr9b8Ps9jmnKkGJJLLYR3G1JHBhH3e 8ef9iFBZMpZ8b+0vbvLKiAOlcZo3ryY= X-MC-Unique: -yxR6XTbMDCNSdx_gAnp3A-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 4/4] qemu: Enable migration events only for fresh QEMU process Date: Thu, 12 May 2022 10:55:47 +0200 Message-Id: <4ad843c02f2930f6185bb2d7ea590bd2a103a96e.1652345711.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652345826383100001 Content-Type: text/plain; charset="utf-8" Every running QEMU process we are willing to reconnect (i.e., at least 3.1.0) supports migration events and we can assume the capability is already enabled since last time libvirt daemon connected to its monitor. Well, it's not guaranteed though. If libvirt 1.2.17 or older was used to start QEMU 3.1.0 or newer, migration events would not be enabled. And if the user decides to upgrade libvirt from 1.2.17 to 8.4.0 while the QEMU process is still running, they would not be able to migrate the domain because of disabled migration events. I think we do not really need to worry about this scenario as libvirt 1.2.17 is 7 years old while QEMU 3.1.0 was released only 3.5 years ago. Thus a chance someone would be running such configuration should be fairly small and a combination with upgrading 1.2.17 to 8.4.0 (or newer) with running domains should get it pretty much to zero. The issue would disappear ff the ancient libvirt is first upgraded to something older than 8.4.0 and then to the current libvirt. Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- Notes: I was hoping we could do this without any downside, but it appeared this was not possible. In case someone still thinks this would be an issue, I can take an alternative solution and check whether migration events are enabled when reconnecting to QEMU monitor. src/qemu/qemu_migration_params.c | 26 ++++++++++++++------------ src/qemu/qemu_migration_params.h | 3 ++- src/qemu/qemu_process.c | 14 +++++++++----- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 26754f03f8..95fd773645 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -1385,10 +1385,10 @@ qemuMigrationParamsParse(xmlXPathContextPtr ctxt, int qemuMigrationCapsCheck(virQEMUDriver *driver, virDomainObj *vm, - int asyncJob) + int asyncJob, + bool reconnect) { qemuDomainObjPrivate *priv =3D vm->privateData; - g_autoptr(virBitmap) migEvent =3D NULL; g_autoptr(virJSONValue) json =3D NULL; g_auto(GStrv) caps =3D NULL; char **capStr; @@ -1419,22 +1419,24 @@ qemuMigrationCapsCheck(virQEMUDriver *driver, } } =20 - migEvent =3D virBitmapNew(QEMU_MIGRATION_CAP_LAST); + if (!reconnect) { + g_autoptr(virBitmap) migEvent =3D virBitmapNew(QEMU_MIGRATION_CAP_= LAST); =20 - ignore_value(virBitmapSetBit(migEvent, QEMU_MIGRATION_CAP_EVENTS)); + ignore_value(virBitmapSetBit(migEvent, QEMU_MIGRATION_CAP_EVENTS)); =20 - if (!(json =3D qemuMigrationCapsToJSON(migEvent, migEvent))) - return -1; + if (!(json =3D qemuMigrationCapsToJSON(migEvent, migEvent))) + return -1; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) - return -1; + if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + return -1; =20 - rc =3D qemuMonitorSetMigrationCapabilities(priv->mon, &json); + rc =3D qemuMonitorSetMigrationCapabilities(priv->mon, &json); =20 - qemuDomainObjExitMonitor(vm); + qemuDomainObjExitMonitor(vm); =20 - if (rc < 0) - return -1; + if (rc < 0) + return -1; + } =20 /* Migration events capability must always be enabled, clearing it from * migration capabilities bitmap makes sure it won't be touched anywhe= re diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_par= ams.h index 4a8815e776..a0909b9f3d 100644 --- a/src/qemu/qemu_migration_params.h +++ b/src/qemu/qemu_migration_params.h @@ -162,7 +162,8 @@ qemuMigrationParamsParse(xmlXPathContextPtr ctxt, int qemuMigrationCapsCheck(virQEMUDriver *driver, virDomainObj *vm, - int asyncJob); + int asyncJob, + bool reconnect); =20 bool qemuMigrationCapsGet(virDomainObj *vm, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 2b16298942..fd4db43a42 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -1914,8 +1914,12 @@ qemuProcessInitMonitor(virQEMUDriver *driver, =20 =20 static int -qemuConnectMonitor(virQEMUDriver *driver, virDomainObj *vm, int asyncJob, - bool retry, qemuDomainLogContext *logCtxt) +qemuConnectMonitor(virQEMUDriver *driver, + virDomainObj *vm, + int asyncJob, + bool retry, + qemuDomainLogContext *logCtxt, + bool reconnect) { qemuDomainObjPrivate *priv =3D vm->privateData; qemuMonitor *mon =3D NULL; @@ -1968,7 +1972,7 @@ qemuConnectMonitor(virQEMUDriver *driver, virDomainOb= j *vm, int asyncJob, if (qemuProcessInitMonitor(driver, vm, asyncJob) < 0) return -1; =20 - if (qemuMigrationCapsCheck(driver, vm, asyncJob) < 0) + if (qemuMigrationCapsCheck(driver, vm, asyncJob, reconnect) < 0) return -1; =20 return 0; @@ -2353,7 +2357,7 @@ qemuProcessWaitForMonitor(virQEMUDriver *driver, VIR_DEBUG("Connect monitor to vm=3D%p name=3D'%s' retry=3D%d", vm, vm->def->name, retry); =20 - if (qemuConnectMonitor(driver, vm, asyncJob, retry, logCtxt) < 0) + if (qemuConnectMonitor(driver, vm, asyncJob, retry, logCtxt, false) < = 0) goto cleanup; =20 /* Try to get the pty path mappings again via the monitor. This is muc= h more @@ -8773,7 +8777,7 @@ qemuProcessReconnect(void *opaque) tryMonReconn =3D true; =20 /* XXX check PID liveliness & EXE path */ - if (qemuConnectMonitor(driver, obj, VIR_ASYNC_JOB_NONE, retry, NULL) <= 0) + if (qemuConnectMonitor(driver, obj, VIR_ASYNC_JOB_NONE, retry, NULL, t= rue) < 0) goto error; =20 priv->machineName =3D qemuDomainGetMachineName(obj); --=20 2.35.1