From nobody Wed May 15 19:13:07 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=1658928347; cv=none; d=zohomail.com; s=zohoarc; b=G/Mu3n97w4n30dKHE5KWcPjWcRJxg9T0AnEj412YYSiY8Bly5OaHVk2RqBTaUCAtH9iUjQCLgHCqH6S5B1IfUe6mnC3CE1d6zcPMFkI1EfdcxVGzFymbIZtlSpSCETH36ee+g2Ylb5beOUNCfmHoBHiD6FggGmuu2al5uC8QkLM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658928347; h=Content-Type:Content-Transfer-Encoding:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=vlNeDLXf1V5M4p53dbiG0fmDijitUVYkPhohUvOkFNA=; b=gs4cb3X2YBzpKgUED6SkWbpCzSlo0linbXFmenGM3szdsn/at3WMKDTyXAf/vh6yZxJmAYVoXFlegP+/QT74pWWPlFqT64wsThKAhp/p8oEETXS+6AWtWWe3bWKdxy6Ldq8zrURiwlwakCFgb231c0drSsonD1LYv4/y+e+xJx0= 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 165892834777094.14572010896813; Wed, 27 Jul 2022 06:25:47 -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-379-z-cFgDIEOJai8evE4yr-3g-1; Wed, 27 Jul 2022 09:25:45 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8480C811E75; Wed, 27 Jul 2022 13:25:42 +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 BF74C1415118; Wed, 27 Jul 2022 13:25:39 +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 8E4FE1945DA0; Wed, 27 Jul 2022 13:25:39 +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 79A621945D94 for ; Wed, 27 Jul 2022 13:18:43 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 6A593492CA5; Wed, 27 Jul 2022 13:18:43 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.227]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4C735492CA2 for ; Wed, 27 Jul 2022 13:18:43 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 47983240267; Wed, 27 Jul 2022 15:18:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658928346; 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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=vlNeDLXf1V5M4p53dbiG0fmDijitUVYkPhohUvOkFNA=; b=CF2KPM3AHYqAYurSOul/itBrlFYpEh/p18gx/VcBgwADMLqvmRkLenM7UKW8BiyKKMwwrC QplxPNARh54f6VmIGPkvuOSrVLXK8ebkW+KwNYr2QeU7b2iot+koEjc39y+n0eSIhktC52 SE0wpZZs51/1yk6M/rpHAGJN38iEomQ= X-MC-Unique: z-cFgDIEOJai8evE4yr-3g-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH] qemu: Restore original memory locking limit on reconnect Date: Wed, 27 Jul 2022 15:18:39 +0200 Message-Id: <38e144057a8f01b2d8ab2e8ec3a9d91d4e3bf7f9.1658927919.git.jdenemar@redhat.com> 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.7 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: 1658928348968100001 Content-Type: text/plain; charset="utf-8" Commit v8.4.0-287-gd4d3bb8130 tried to make sure the original pre-migration memory locking limit is restored at the end of migration, but it missed the case when libvirt daemon is restarted during migration which needs to be aborted on reconnect. And if this was not enough, I forgot to actually save the status XML after setting the field in priv (in the commit mentioned above and also in v8.4.0-291-gd375993ab3). https://bugzilla.redhat.com/show_bug.cgi?id=3D2107424 Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik --- src/qemu/qemu_migration.c | 13 +++++++++---- src/qemu/qemu_process.c | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 8e9428a5bb..e1f5e49683 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -4672,10 +4672,12 @@ qemuMigrationSrcStart(virDomainObj *vm, switch (spec->destType) { case MIGRATION_DEST_HOST: if (STREQ(spec->dest.host.protocol, "rdma") && - virMemoryLimitIsSet(vm->def->mem.hard_limit) && - qemuDomainSetMaxMemLock(vm, vm->def->mem.hard_limit << 10, - &priv->preMigrationMemlock) < 0) { - return -1; + virMemoryLimitIsSet(vm->def->mem.hard_limit)) { + if (qemuDomainSetMaxMemLock(vm, vm->def->mem.hard_limit << 10, + &priv->preMigrationMemlock) < 0) + return -1; + /* Store the original memory locking limit */ + qemuDomainSaveStatus(vm); } return qemuMonitorMigrateToHost(priv->mon, migrateFlags, spec->dest.host.protocol, @@ -4868,6 +4870,9 @@ qemuMigrationSrcRun(virQEMUDriver *driver, =20 if (qemuDomainSetMaxMemLock(vm, limit << 10, &priv->preMigrationMe= mlock) < 0) goto error; + + /* Store the original memory locking limit */ + qemuDomainSaveStatus(vm); } =20 if (storageMigration) { diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index d42333195a..137dcf5cf4 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3678,6 +3678,7 @@ qemuProcessRecoverMigration(virQEMUDriver *driver, { virDomainJobStatus migStatus =3D VIR_DOMAIN_JOB_STATUS_NONE; qemuDomainJobPrivate *jobPriv =3D job->privateData; + qemuDomainObjPrivate *priv =3D vm->privateData; virDomainState state; int reason; int rc; @@ -3727,6 +3728,7 @@ qemuProcessRecoverMigration(virQEMUDriver *driver, =20 qemuMigrationParamsReset(driver, vm, VIR_ASYNC_JOB_NONE, jobPriv->migParams, job->apiFlags); + qemuDomainSetMaxMemLock(vm, 0, &priv->preMigrationMemlock); =20 return 0; } --=20 2.35.1