From nobody Wed May 1 09:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1548084422272152.32698565439614; Mon, 21 Jan 2019 07:27:02 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D37702D6E79; Mon, 21 Jan 2019 15:26:57 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 702C26CDC4; Mon, 21 Jan 2019 15:26:56 +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 D6CE63D39F; Mon, 21 Jan 2019 15:26:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x0LFQrD5027735 for ; Mon, 21 Jan 2019 10:26:53 -0500 Received: by smtp.corp.redhat.com (Postfix) id 92F2D648CF; Mon, 21 Jan 2019 15:26:53 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1681060C23 for ; Mon, 21 Jan 2019 15:26:52 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Mon, 21 Jan 2019 16:26:43 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/3] qemu: Don't reject making domain persistent if block copy is running 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 21 Jan 2019 15:26:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Add documentation that the 'VIR_DOMAIN_BLOCK_COPY_TRANSIENT_JOB' flag is auto-assumed if the block copy job is started while the VM is transient and remove the restriction to define the domain when copy is running. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/libvirt-domain.c | 13 ++----------- src/qemu/qemu_driver.c | 6 ------ 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index 75c9014c0e..c155b36e16 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -6137,11 +6137,6 @@ virDomainGetBlockInfo(virDomainPtr domain, const cha= r *disk, * virDomainUndefine(). A previous definition for this domain would be * overridden if it already exists. * - * Some hypervisors may prevent this operation if there is a current - * block copy operation on a transient domain with the same id as the - * domain being defined; in that case, use virDomainBlockJobAbort() to - * stop the block copy first. - * * virDomainFree should be used to free the resources after the * domain object is no longer needed. * @@ -6185,11 +6180,6 @@ virDomainDefineXML(virConnectPtr conn, const char *x= ml) * virDomainUndefine(). A previous definition for this domain would be * overridden if it already exists. * - * Some hypervisors may prevent this operation if there is a current - * block copy operation on a transient domain with the same id as the - * domain being defined; in that case, use virDomainBlockJobAbort() to - * stop the block copy first. - * * virDomainFree should be used to free the resources after the * domain object is no longer needed. * @@ -10316,7 +10306,8 @@ virDomainBlockRebase(virDomainPtr dom, const char *= disk, * * If @flags contains VIR_DOMAIN_BLOCK_COPY_TRANSIENT_JOB the job will not= be * recoverable if the VM is turned off while job is active. This flag will - * remove the restriction of copy jobs to transient domains. + * remove the restriction of copy jobs to transient domains. Note that thi= s flag + * is automatically implied if the VM is transient at the time it's starte= d. * * The @disk parameter is either an unambiguous source name of the * block device (the sub-element, such as diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 90319261ff..567d39ea35 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -7713,12 +7713,6 @@ qemuDomainDefineXMLFlags(virConnectPtr conn, goto cleanup; def =3D NULL; - if (qemuDomainHasBlockjob(vm, true)) { - virReportError(VIR_ERR_BLOCK_COPY_ACTIVE, "%s", - _("domain has active block job")); - virDomainObjAssignDef(vm, NULL, false, NULL); - goto cleanup; - } vm->persistent =3D 1; if (virDomainSaveConfig(cfg->configDir, driver->caps, --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 1 09:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 154808442230295.88408352205602; Mon, 21 Jan 2019 07:27:02 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 94B7388E58; Mon, 21 Jan 2019 15:26:58 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3903A6C21A; Mon, 21 Jan 2019 15:26:57 +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 A51C93D3A2; Mon, 21 Jan 2019 15:26:56 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x0LFQshP027740 for ; Mon, 21 Jan 2019 10:26:54 -0500 Received: by smtp.corp.redhat.com (Postfix) id 69486648CF; Mon, 21 Jan 2019 15:26:54 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id E138060C23 for ; Mon, 21 Jan 2019 15:26:53 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Mon, 21 Jan 2019 16:26:44 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 2/3] lib: Clarify that any block job may block VM save or device detach 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Mon, 21 Jan 2019 15:27:00 +0000 (UTC) Content-Type: text/plain; charset="utf-8" The documentation was only referring to a copy job, but in fact any running blockjob will have the same results. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/libvirt-domain.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index c155b36e16..92a095f00b 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -883,8 +883,8 @@ virDomainSave(virDomainPtr domain, const char *to) * virDomainSaveImageGetXMLDesc() and virDomainSaveImageDefineXML(). * * Some hypervisors may prevent this operation if there is a current - * block copy operation; in that case, use virDomainBlockJobAbort() - * to stop the block copy first. + * block job running; in that case, use virDomainBlockJobAbort() + * to stop the block job first. * * Returns 0 in case of success and -1 in case of failure. */ @@ -8297,8 +8297,8 @@ virDomainDetachDevice(virDomainPtr domain, const char= *xml) * persisted device allocation. * * Some hypervisors may prevent this operation if there is a current - * block copy operation on the device being detached; in that case, - * use virDomainBlockJobAbort() to stop the block copy first. + * block job running operation on the device being detached; in that case, + * use virDomainBlockJobAbort() to stop the block job first. * * Beware that depending on the hypervisor and device type, detaching a de= vice * from a running domain may be asynchronous. That is, calling --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 1 09:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1548084427764831.1846274027904; Mon, 21 Jan 2019 07:27:07 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 966908E3DB; Mon, 21 Jan 2019 15:27:04 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 998C86CDC8; Mon, 21 Jan 2019 15:27:02 +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 EABB23D39B; Mon, 21 Jan 2019 15:27:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x0LFQtdC027750 for ; Mon, 21 Jan 2019 10:26:55 -0500 Received: by smtp.corp.redhat.com (Postfix) id 3D8A360C23; Mon, 21 Jan 2019 15:26:55 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id B552F648D1 for ; Mon, 21 Jan 2019 15:26:54 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Mon, 21 Jan 2019 16:26:45 +0100 Message-Id: <3a75962da72c19ff2256cc7322ca8342c561cef1.1548084188.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 3/3] lib: domain: Emphasise that users should wait for block job READY state via events 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Mon, 21 Jan 2019 15:27:06 +0000 (UTC) Content-Type: text/plain; charset="utf-8" The transition to the ready state is best observed by events as it's ansynchronous and does not hint users to do polling. As currently only the qemu driver supports block copy and block commit and the ready state event was introduced by qemu 1.3 we can fully switch to the new approach. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/libvirt-domain.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index 92a095f00b..408a442abc 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -10291,8 +10291,10 @@ virDomainBlockRebase(virDomainPtr dom, const char = *disk, * source file; progress in this phase can be tracked via the * virDomainBlockJobInfo() command, with a job type of * VIR_DOMAIN_BLOCK_JOB_TYPE_COPY. The job transitions to the second - * phase when the job info states cur =3D=3D end, and remains alive to mir= ror - * all further changes to both source and destination. The user must + * phase when the block job event with state VIR_DOMAIN_BLOCK_JOB_READY is + * emitted for the given device. This information is also it's visible in = the + * live XML as 'ready=3D"yes"' attribute of the corresponding ele= ment. + * All further changes are saved to both source and destination. The user= must * call virDomainBlockJobAbort() to end the mirroring while choosing * whether to revert to source or pivot to the destination. An event is * issued when the job ends, and depending on the hypervisor, an event may @@ -10406,9 +10408,9 @@ virDomainBlockCopy(virDomainPtr dom, const char *di= sk, * of VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT, and operates in two phases. * In the first phase, the contents are being committed into @base, and the * job can only be canceled. The job transitions to the second phase when - * the job info states cur =3D=3D end, and remains alive to keep all furth= er - * changes to @top synchronized into @base; an event with status - * VIR_DOMAIN_BLOCK_JOB_READY is also issued to mark the job transition. + * the block job event with state VIR_DOMAIN_BLOCK_JOB_READY is + * emitted for the given device. This information is also it's visible in = the + * live XML as 'ready=3D"yes"' attribute of the corresponding ele= ment. * Once in the second phase, the user must choose whether to cancel the job * (keeping @top as the active image, but now containing only the changes * since the time the job ended) or to pivot the job (adjusting to @base as --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list