From nobody Mon May 20 16:07:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1685437453; cv=none; d=zohomail.com; s=zohoarc; b=PR6heSc2AryV69oT5dk4xV9ycuVNp5Ue4iBsXac5GIqhSsjP5wo6Y/uQSin3wglKGjOcrQhq1MgXDxxegbl50eIe+NsIvN9xlnzVEpz3OuTYTKzxo/dgZrI67/twpN9TgnbmlW9crQFWyfy7hmjDyyR+f+xcXzOCRs9ElvBOYpE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685437453; h=Content-Transfer-Encoding:Cc: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=dwawotTmgXhTNN9CXzHBfILIF/ABHyZLzGR2AePmlQA=; b=JcOU0qC8bzdxLMMD+f1paTXWYoIqfNJexQ3qiQRXhd2+fYXDWrjPSV0UJXS8YHjkP2iyYWoUOfSkv+POxAV4qp3ywCwKYANYrKSvou3uP5Gw1H1jkU/zt8bbWdkCBPC4JLN6gFg2k0zc8nX4/ImI4U5kX9iugc9N14mDxPf/s1I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685437453386684.6017155905065; Tue, 30 May 2023 02:04:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3vG7-0002T0-Hi; Tue, 30 May 2023 05:03:15 -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 1q3vG5-0002Oo-4A for qemu-devel@nongnu.org; Tue, 30 May 2023 05:03:13 -0400 Received: from mga03.intel.com ([134.134.136.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3vG3-0006FE-8x for qemu-devel@nongnu.org; Tue, 30 May 2023 05:03:12 -0400 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 May 2023 02:03:07 -0700 Received: from tdx-lm.sh.intel.com ([10.239.53.27]) by orsmga001.jf.intel.com with ESMTP; 30 May 2023 02:03:05 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685437391; x=1716973391; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=fJlGAPVr94+R54bhtucSXb6TcTWdOccQlUQmJThAuqw=; b=C8m0fOEMCxOR8WQKENASY0O4f6IzWnZ1ifXOrCA45rDipb/1y/2/XdtN JM2EqrTguXRDwzrbRGtqVf+3voAa++3GTduFpI+uE2oGESzupotXTLD6l DRH0JdzlE7hKuROQLV+ziXNdwz9W8ixEyddZKJyy0zYpZFXBhaPXyu8ZL EZeEUtwTQWzW3xK6w9Yv4V8VxLPM9nM2+s1L4dO8EA4j3iJKvhR71Wbc+ 1xI0Aq5HDuC4i1CCAB8Tx3JBiXBu4RevX18Adq27N4dNm/YYIm7SEQ+lA 3/Nwt+vGaAwLR1u0ZFGj7IstX2rO/6BA2rbiSybgnwlUxta0WeLIlbYgG A==; X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="358110384" X-IronPort-AV: E=Sophos;i="6.00,203,1681196400"; d="scan'208";a="358110384" X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="739435466" X-IronPort-AV: E=Sophos;i="6.00,203,1681196400"; d="scan'208";a="739435466" From: Wei Wang To: quintela@redhat.com, peterx@redhat.com, lei4.wang@intel.com Cc: qemu-devel@nongnu.org, Wei Wang Subject: [PATCH v2 1/2] migration: enfocre multifd and postcopy preempt to be set before incoming Date: Tue, 30 May 2023 17:02:58 +0800 Message-Id: <20230530090259.189462-2-wei.w.wang@intel.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230530090259.189462-1-wei.w.wang@intel.com> References: <20230530090259.189462-1-wei.w.wang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=134.134.136.65; envelope-from=wei.w.wang@intel.com; helo=mga03.intel.com X-Spam_score_int: -45 X-Spam_score: -4.6 X-Spam_bar: ---- X-Spam_report: (-4.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.16, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham 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 @intel.com) X-ZM-MESSAGEID: 1685437454880100001 Content-Type: text/plain; charset="utf-8" qemu_start_incoming_migration needs to check the number of multifd channels or postcopy ram channels to configure the backlog parameter (i.e. the maximum length to which the queue of pending connections for sockfd may grow) of listen(). So enforce the usage of postcopy-preempt and multifd as below: - need to use "-incoming defer" on the destination; and - set_capability and set_parameter need to be done before migrate_incoming Otherwise, disable the use of the features and report error messages to remind users to adjust the commands. Signed-off-by: Wei Wang Reviewed-by: Peter Xu --- migration/options.c | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/migration/options.c b/migration/options.c index a560483871..954a39aa6d 100644 --- a/migration/options.c +++ b/migration/options.c @@ -415,6 +415,11 @@ INITIALIZE_MIGRATE_CAPS_SET(check_caps_background_snap= shot, MIGRATION_CAPABILITY_VALIDATE_UUID, MIGRATION_CAPABILITY_ZERO_COPY_SEND); =20 +static bool migrate_incoming_started(void) +{ + return !!migration_incoming_get_current()->transport_data; +} + /** * @migration_caps_check - check capability compatibility * @@ -538,6 +543,12 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps= , Error **errp) error_setg(errp, "Postcopy preempt not compatible with compres= s"); return false; } + + if (migrate_incoming_started()) { + error_setg(errp, + "Postcopy preempt must be set before incoming start= s"); + return false; + } } =20 if (new_caps[MIGRATION_CAPABILITY_MULTIFD]) { @@ -545,6 +556,10 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps= , Error **errp) error_setg(errp, "Multifd is not compatible with compress"); return false; } + if (migrate_incoming_started()) { + error_setg(errp, "Multifd must be set before incoming starts"); + return false; + } } =20 return true; @@ -998,11 +1013,22 @@ bool migrate_params_check(MigrationParameters *param= s, Error **errp) =20 /* x_checkpoint_delay is now always positive */ =20 - if (params->has_multifd_channels && (params->multifd_channels < 1)) { - error_setg(errp, QERR_INVALID_PARAMETER_VALUE, - "multifd_channels", - "a value between 1 and 255"); - return false; + if (params->has_multifd_channels) { + if (params->multifd_channels < 1) { + error_setg(errp, QERR_INVALID_PARAMETER_VALUE, + "multifd_channels", + "a value between 1 and 255"); + return false; + } + if (migrate_incoming_started()) { + MigrationState *ms =3D migrate_get_current(); + + ms->capabilities[MIGRATION_CAPABILITY_MULTIFD] =3D false; + error_setg(errp, QERR_INVALID_PARAMETER_VALUE, + "multifd_channels", + "must be set before incoming starts"); + return false; + } } =20 if (params->has_multifd_zlib_level && --=20 2.27.0 From nobody Mon May 20 16:07:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1685437418; cv=none; d=zohomail.com; s=zohoarc; b=RxXafwVPMU9nHGRkKfaRRSbRZ3C26WEmwxt2GCDcqLnJTGahnScTOeeiZ4RDoBXjAdj1jWspcYd2nxrvsfUNQXkkblmyN1O/zUmBEDcXvpDDuhUGLsdyZPnB4JVqHcQpja0c9x5oJCQg90R/L0MhNPhXaumbMO9O62LaOSVHcvc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685437418; h=Content-Transfer-Encoding:Cc: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=vh/HemoLtkCUNRiWnzwE3/e/2JEgXPP1ZBrc/HKCxWs=; b=i+aXKidhhpF0LP5U8+tbobvLIS+gSf9ArggNnnbxuKOB1+qY0monyFadBvRWLgSxIIstb0hQ1sTDBLKQwhEn3AMB2TiFsEYANzaNLPQ38M3taXmKvWZEiRrJj93nNm8yMxsG1QOumy2/waxR5peKycQw7f3d4tBBHFWS2VL3Wwk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685437418823432.9460838205507; Tue, 30 May 2023 02:03:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3vG8-0002UL-EE; Tue, 30 May 2023 05:03:16 -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 1q3vG6-0002Rh-NP for qemu-devel@nongnu.org; Tue, 30 May 2023 05:03:14 -0400 Received: from mga03.intel.com ([134.134.136.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3vG5-0006Hq-2N for qemu-devel@nongnu.org; Tue, 30 May 2023 05:03:14 -0400 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 May 2023 02:03:12 -0700 Received: from tdx-lm.sh.intel.com ([10.239.53.27]) by orsmga001.jf.intel.com with ESMTP; 30 May 2023 02:03:10 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685437393; x=1716973393; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4Luiotjr8fGiSEYpJUsIrZ7CGuORIrNgVazrh83vAFw=; b=GP4vt1xG5VAePVKiynsA+sil43/mdrUupan6RL16fS1pwx+o9Thz1CQg FCLqRNmEMfgKyoHThGmJzv0bhqWzLA3JKjMWlo1D5KHD4+9xjD6Kf4Ill D+CTS0l+xPTF3jwtrErFNFm2fVFuJRcQ57g+GpuGdcQz48Gs+kG7E/9sH t4WJOyg3T1Vrnv5ShlMy2qiqHmWBKJvUsKGJHp8y7rsNhHpBp31dsXo9Z m4i5S/1PI1V+hTjGn4YSW6FAONMzrJj5FZYq7IlX4j1D+wxea10jGxViD j/3kthZhJxRcuQjHG5CBBI1RnH36Q3EaWsMm/wZbpMPXC73wONy9ZXjBH A==; X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="358110394" X-IronPort-AV: E=Sophos;i="6.00,203,1681196400"; d="scan'208";a="358110394" X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="739435483" X-IronPort-AV: E=Sophos;i="6.00,203,1681196400"; d="scan'208";a="739435483" From: Wei Wang To: quintela@redhat.com, peterx@redhat.com, lei4.wang@intel.com Cc: qemu-devel@nongnu.org, Wei Wang Subject: [PATCH v2 2/2] qtest/migration-tests.c: use "-incoming defer" for postcopy tests Date: Tue, 30 May 2023 17:02:59 +0800 Message-Id: <20230530090259.189462-3-wei.w.wang@intel.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230530090259.189462-1-wei.w.wang@intel.com> References: <20230530090259.189462-1-wei.w.wang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=134.134.136.65; envelope-from=wei.w.wang@intel.com; helo=mga03.intel.com X-Spam_score_int: -45 X-Spam_score: -4.6 X-Spam_bar: ---- X-Spam_report: (-4.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.16, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham 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 @intel.com) X-ZM-MESSAGEID: 1685437421043100002 Content-Type: text/plain; charset="utf-8" The Postcopy preempt capability requires to be set before incoming starts, so change the postcopy tests to start with deferred incoming and call migrate-incoming after the cap has been set. Signed-off-by: Wei Wang Reviewed-by: Peter Xu --- tests/qtest/migration-test.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index b99b49a314..31ce3d959c 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -1158,10 +1158,11 @@ static int migrate_postcopy_prepare(QTestState **fr= om_ptr, QTestState **to_ptr, MigrateCommon *args) { - g_autofree char *uri =3D g_strdup_printf("unix:%s/migsocket", tmpfs); + g_autofree char *uri =3D NULL; QTestState *from, *to; + QDict *rsp; =20 - if (test_migrate_start(&from, &to, uri, &args->start)) { + if (test_migrate_start(&from, &to, "defer", &args->start)) { return -1; } =20 @@ -1180,9 +1181,14 @@ static int migrate_postcopy_prepare(QTestState **fro= m_ptr, =20 migrate_ensure_non_converge(from); =20 + rsp =3D wait_command(to, "{ 'execute': 'migrate-incoming'," + " 'arguments': { 'uri': 'tcp:127.0.0.1:0' }}"); + qobject_unref(rsp); + /* Wait for the first serial output from the source */ wait_for_serial("src_serial"); =20 + uri =3D migrate_get_socket_address(to, "socket-address"); migrate_qmp(from, uri, "{}"); =20 wait_for_migration_pass(from); --=20 2.27.0