From nobody Tue Sep 9 23:40:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1737588334; cv=none; d=zohomail.com; s=zohoarc; b=IWBZlRY8NOMXvnQQ40/et8c3Ut8T2YRKEp5cFZfx7qfxyzJOAncJlhFTLRJCS4DMwvE6zEmOKif5XESUgw83lWf+TbaDwbVUPx35z9fcG+faMQeyMnPxzeh+bV0MdA34L0tXzU4kDNAvw8oFjS3YK6Xij3RrKSnAtMa3HfACbx4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1737588334; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=JHVIwKEr6PyYxNBsY2IafI4Ia6aspHs5RmEcoQBSq84=; b=hZ8B7HRvslbcNwKQiENEr1A3RDPKlVd4FMsp0cSALBWemMWJNHH/9TS/Xax0Tp+INx/vceCa1geXLRCAbA1IxEHl5sBtmvQh0ks0fraaNtuVCqVCsKTaihSeY2lyzof5sFIE1DhFn5RfM5dJpYT6gvsebnJ4Zf1FcVX/T2x9T6Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1737588334220712.1762106806735; Wed, 22 Jan 2025 15:25:34 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id B3DC51368; Wed, 22 Jan 2025 18:25:33 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id C077412FB; Wed, 22 Jan 2025 18:23:03 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id D51131391; Wed, 22 Jan 2025 18:22:58 -0500 (EST) Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 7DC871373 for ; Wed, 22 Jan 2025 18:22:42 -0500 (EST) Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-aaf900cc7fbso53167266b.3 for ; Wed, 22 Jan 2025 15:22:42 -0800 (PST) Received: from localhost (75-169-8-111.slkc.qwest.net. [75.169.8.111]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2f7e36ec871sm2067980a91.0.2025.01.22.15.22.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jan 2025 15:22:40 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1737588161; x=1738192961; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zvqd7NyA7vrcmqolS+3lRW1I24ZxW6+vYzn8D3U2J6g=; b=Ju5KBo2iHhiQPplte4TDqTSRNliWNjS1w+3pD56BzrvSy//QGElyN9Tj4lz8qdyo2Q V4ZIi6Zk3dn0tENnn0PKCOaNTIMBWWNpyokMJchk/ma/yzoukwYGl31R62Sf3RrfXcs+ okjd6erWdez9o3ZiUvSjsupUvq2pRQ4sZCzuthJcWu7n3fcp563LkzV0QYsqLPru2ZU8 NV075fbeLGXMBhNlF6LM0FZVIbI8hZa0PKMYhDGHY4QumjFL789JAiSnRb2evVFa0KJF qego6+HZ0aDf9ExIR2N6oGlgw1MsRvEg5mo0nsmTb6/I8jl8UlmRWv6+j7cpAdOT/mDT Y2DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737588161; x=1738192961; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zvqd7NyA7vrcmqolS+3lRW1I24ZxW6+vYzn8D3U2J6g=; b=GLkhFxt7Uz6W4+9hDhhM3d6wVH+wZ4LBZ33yOOp7YMZrUEfd3spXCrCPKjAC6n/0K/ Y8dJVRggNQV1dyg9Ffg1gVryO02Gr/k+7aMrF1L/sB9djcFESzfJL3jxsTeQQUzU/4Zx +2llHAIuE5dLhjG4MxSSK9Y+Zr68tj2Chdop5gZjhKCjXQ7Nz6DtgosmgCPVhC6pfCpV WdtCLGcscT4I6xKcDGxmDfVLcPqltUZJXhgGGbnzG2lLVxIEhlZx5fkHbifpCPtSfaFv vRSsyksSqvzxkmEWxFJOikYmk7ighN9KiYx2qoy4LeF4qWEGx4PK3kJtzovMlWdVACb7 7SrQ== X-Gm-Message-State: AOJu0Ywnw24ij/ooqBe8SdY0jBvy3zUSbg9r8TbTGeSxwkjYcD8G7Rwt X6xHwEM1SuQxWJH1XAvi6lYzgD0xL5zYN4kNPLJ7uTN8SertCxnsKTy/H+QbpemDdMi8zbItsVe 4 X-Gm-Gg: ASbGncsTohIU7pXx7XkYVAsG7RL8nSUrq/4KrzW9cmNXpR3Mxq8nZcnm7DlQr5kkR2a zfbX6+muXG+wAREnOQJqho6bdCykjrtRd82w7VelYz3hCF1gbmvMIGfF9ZVsUBXhaE2oG8MppAY 9+BRk0KvDeWJ3ldoEay9pze6yn5A4j0FdTJH3Yx07Vxxm+4qUgj3qgP++Cu7KqsBgQn5iD6CFs7 a5WLvwqitfsxqEBeqLuarxfRV6NXaaLxiS0/TOd7NUCvkRQGO4+Vd8WE3g7GbUn6d5+KLYlKdG3 knWBEMoy2I7b X-Google-Smtp-Source: AGHT+IHn/mEJTCk51Ww8LAKEgdNcEskfn1IGb7BMjnT4KbEVsetG6QJ9M0Y2xwKjmYTUZV/RMHJreg== X-Received: by 2002:a17:907:2d2c:b0:ab2:faed:f180 with SMTP id a640c23a62f3a-ab38b18bf29mr2406481966b.33.1737588161316; Wed, 22 Jan 2025 15:22:41 -0800 (PST) To: devel@lists.libvirt.org Subject: [PATCH V2 06/20] qemu: Add function to get migration params for save Date: Wed, 22 Jan 2025 16:16:40 -0700 Message-ID: <20250122232228.19306-7-jfehlig@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250122232228.19306-1-jfehlig@suse.com> References: <20250122232228.19306-1-jfehlig@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: IDJTIYXSG7QYLARZLFY2E6FGZC67C63X X-Message-ID-Hash: IDJTIYXSG7QYLARZLFY2E6FGZC67C63X X-MailFrom: jfehlig@suse.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: farosas@suse.de X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Jim Fehlig via Devel Reply-To: Jim Fehlig X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1737588334612019000 Content-Type: text/plain; charset="utf-8" Introduce qemuMigrationParamsForSave() to create a qemuMigrationParams object initialized with appropriate migration capabilities and parameters for a save operation. Note that mapped-ram capability also requires the multifd capability. For now, the number of multifd channels is set to 1. Future work to support parallel save/restore can set the number of channels to a user-specified value. Signed-off-by: Jim Fehlig Reviewed-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_migration.c | 2 +- src/qemu/qemu_migration_params.c | 21 +++++++++++++++++++++ src/qemu/qemu_migration_params.h | 3 +++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 1582a738a3..d46a6e2e2a 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -7086,7 +7086,7 @@ qemuMigrationSrcToFile(virQEMUDriver *driver, virDoma= inObj *vm, =20 /* Increase migration bandwidth to unlimited since target is a file. * Failure to change migration speed is not fatal. */ - if (!(migParams =3D qemuMigrationParamsNew())) + if (!(migParams =3D qemuMigrationParamsForSave(false))) return -1; =20 if (qemuMigrationParamsSetULL(migParams, diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 03937df2d3..0faeb6b0c1 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -783,6 +783,27 @@ qemuMigrationParamsFromFlags(virTypedParameterPtr para= ms, } =20 =20 +qemuMigrationParams * +qemuMigrationParamsForSave(bool sparse) +{ + g_autoptr(qemuMigrationParams) saveParams =3D NULL; + + if (!(saveParams =3D qemuMigrationParamsNew())) + return NULL; + + if (sparse) { + if (virBitmapSetBit(saveParams->caps, QEMU_MIGRATION_CAP_MAPPED_RA= M) < 0) + return NULL; + if (virBitmapSetBit(saveParams->caps, QEMU_MIGRATION_CAP_MULTIFD) = < 0) + return NULL; + saveParams->params[QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS].value.i = =3D 1; + saveParams->params[QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS].set =3D = true; + } + + return g_steal_pointer(&saveParams); +} + + int qemuMigrationParamsDump(qemuMigrationParams *migParams, virTypedParameterPtr *params, diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_par= ams.h index 91a1965a74..bb24af4ef9 100644 --- a/src/qemu/qemu_migration_params.h +++ b/src/qemu/qemu_migration_params.h @@ -86,6 +86,9 @@ qemuMigrationParamsFromFlags(virTypedParameterPtr params, unsigned int flags, qemuMigrationParty party); =20 +qemuMigrationParams * +qemuMigrationParamsForSave(bool sparse); + int qemuMigrationParamsDump(qemuMigrationParams *migParams, virTypedParameterPtr *params, --=20 2.43.0