From nobody Sun Dec 14 05:52:03 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1754567492; cv=none; d=zohomail.com; s=zohoarc; b=JfaJsFOTg4y5bjRT7nsnHPpFyjMBQBgwbb5BBvCWU2x6w+x9GD8/NTiuVQ7tNwNJoLyRDVgZZpTcb6W7zcAK/LXUOEPLlxHxuchQewKZVKQDOwqpwJfK5sDQuQqs5ryJDa7ZP4/y3bXKcqgHoVK3Purm6SPTzfZh677ZFP3JGL8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754567492; h=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:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=m3X+kYbpzgtIHvfvg6n9K02H26aiiWgU8LEFGmGE10o=; b=aJNHMpqBrQ8ovAnc7Lq6fQatGEcXDaEIxIGzrKZ89h3pEySUB5wIFnMVD40m4qvcr5xXCK5303f3SAA1dQTXzpIzq1Eu86o6n5Zwjt2MqzfE4fw7zMYiTH9Iz5OHF02XnrMp+cHQEd2ax9zllHQ1yMiUFZBczg8K8aHeZAjDzLs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754567492722432.8962224979134; Thu, 7 Aug 2025 04:51:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ujz8o-0000sM-If; Thu, 07 Aug 2025 07:50:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ujz8i-0000k6-JC for qemu-devel@nongnu.org; Thu, 07 Aug 2025 07:50:35 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ujz8h-0002B9-5a for qemu-devel@nongnu.org; Thu, 07 Aug 2025 07:50:32 -0400 Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-468-j7iAlGsQP3KjM7Ha432Oyw-1; Thu, 07 Aug 2025 07:50:28 -0400 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 625FA19560A5; Thu, 7 Aug 2025 11:50:27 +0000 (UTC) Received: from fedora (unknown [10.43.3.128]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 172EE19560B0; Thu, 7 Aug 2025 11:50:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1754567429; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=m3X+kYbpzgtIHvfvg6n9K02H26aiiWgU8LEFGmGE10o=; b=a/LvSUqhU8/jTE7XKoX7shHC3MLHv6PDEfeZmDixayoQpKrvUwdNLPS1Eb3I9UQbt2fLGA WifdDR8cvSVjD/UOA5+Ly6UP11C9WH6hZ+B+IKJb++xtShpQghJLFivz6ou0uTFvjFUNYE 375hskYGmmHFG8662n6WjkUdtDU2VEM= X-MC-Unique: j7iAlGsQP3KjM7Ha432Oyw-1 X-Mimecast-MFC-AGG-ID: j7iAlGsQP3KjM7Ha432Oyw_1754567427 From: Juraj Marcin To: qemu-devel@nongnu.org Cc: Juraj Marcin , Jiri Denemark , Stefan Weil , Paolo Bonzini , Peter Xu , Fabiano Rosas Subject: [RFC PATCH 3/4] migration: Make listen thread joinable Date: Thu, 7 Aug 2025 13:49:11 +0200 Message-ID: <20250807114922.1013286-4-jmarcin@redhat.com> In-Reply-To: <20250807114922.1013286-1-jmarcin@redhat.com> References: <20250807114922.1013286-1-jmarcin@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=jmarcin@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_SBL_CSS=3.335, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1754567494613124100 Content-Type: text/plain; charset="utf-8" From: Juraj Marcin This patch allows joining the migration listen thread. This is done in preparation for the introduction of "postcopy-setup" state at the beginning of a postcopy migration, when destination can fail gracefully and source side then resume to a running state. In case of such failure, to gracefully perform all cleanup in the main migration thread, we need to wait for the listen thread to exit, which can be done by joining it. Signed-off-by: Juraj Marcin --- migration/migration.c | 1 + migration/savevm.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/migration/migration.c b/migration/migration.c index e5ce2940d5..8174e811eb 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -901,6 +901,7 @@ process_incoming_migration_co(void *opaque) * Postcopy was started, cleanup should happen at the end of t= he * postcopy thread. */ + qemu_thread_detach(&mis->listen_thread); trace_process_incoming_migration_co_postcopy_end_main(); goto out; } diff --git a/migration/savevm.c b/migration/savevm.c index fabbeb296a..d2360be53c 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2217,7 +2217,7 @@ static int loadvm_postcopy_handle_listen(MigrationInc= omingState *mis) mis->have_listen_thread =3D true; postcopy_thread_create(mis, &mis->listen_thread, MIGRATION_THREAD_DST_LISTEN, - postcopy_ram_listen_thread, QEMU_THREAD_DETACHE= D); + postcopy_ram_listen_thread, QEMU_THREAD_JOINABL= E); trace_loadvm_postcopy_handle_listen("return"); =20 return 0; --=20 2.50.1