From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:a17:906:33ce:b0:9d0:bf65:29fa with SMTP id w14csp324470eja; Thu, 2 Nov 2023 04:49:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGCBqDkYt5P1pWGFIDh2g3YH2lFaY5VCJU6iaN4Y0KqbpV4AGcK2bFUXIl7+EG+O/a+XWRq X-Received: by 2002:a05:620a:1b86:b0:778:92d6:db0f with SMTP id dv6-20020a05620a1b8600b0077892d6db0fmr17662903qkb.20.1698925789666; Thu, 02 Nov 2023 04:49:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698925789; cv=none; d=google.com; s=arc-20160816; b=p0937Ag1EpoeP1IYIuORTm5Nqlvx6UTeolMefIcG56PIZ6TLaV8OCd2RyaHH0b2lh0 fCcQPmP1U5xwXMWYE13u7uCRoNZUuZlIihXXd3ul+JfB/kv9afapQ3siT4Wed7oNbynW Oj92F4UebVC0Vfvj2nZ9mMmx03rJ+HP5l78ZYJNG3yWiZx27dl6fCLNjVmwgi3ahzfHG NgRWODmIZkh60SEq+PVxRi5WGKh4DIQVeE5Ah0n29+wHLc+rW0+RAAqRNqvqwO39Kfa8 3meTWdrfQxGQ3YFyiZCdw3dJG9K61mjnvoK+H8G/ZQwnOkjSUB4Fr6IwoLrS/hSOj25s uNGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=gOFojWNGrJUbdhy5+ee0DvQ26PDwcLZiSNtpVI4YL08=; fh=ES/vJtI5J5RM9CDwQFbx/OtSpDk18PEyXjfn3CS+k7o=; b=PVFSrUawUDM46xFtIS9TgvR04+0dsYcNdsSgxXKrBESx75JwOVF8Ion9IjJ3zqxw7l Doy3f2MaihnqSMbh9CUobDNGp94cD8L0cFZTuvIDQtuEIbepM0xFfkMbQVFyfm0sKfTB XX87SLkEnw93zHmd38XgfVyVj8IXzT+oKTATc+BN4aMrwNcnl7GLZI1YeqiXydqG2hFg EuNCuQCWGFdHFXet6cXjrJahJg5qPm+E94pOwO2o5ejoWX+lVaxeXHVCH+suK/vvq040 IeCePgJZY5Cl9pV81shpNw9AuzNTIpDlWC+xncv8Y6+IDOZvi7/RwwHk4DrhSNFIxlOC WqfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="Fl4Y9o/b"; spf=pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id g25-20020a05620a13d900b00776b91c05f9si4299348qkl.149.2023.11.02.04.49.49 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 02 Nov 2023 04:49:49 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="Fl4Y9o/b"; spf=pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qyWBK-0002HJ-MD; Thu, 02 Nov 2023 07:48: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 1qyW9U-00009T-0N for qemu-devel@nongnu.org; Thu, 02 Nov 2023 07:46:25 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qyW96-0006pW-FT for qemu-devel@nongnu.org; Thu, 02 Nov 2023 07:46:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1698925553; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gOFojWNGrJUbdhy5+ee0DvQ26PDwcLZiSNtpVI4YL08=; b=Fl4Y9o/bjcHqbhTDnf5XYGVcbNYSkaoQeOlNTXBTFRSSUHzsL3Z/rGzUP3PtACmUNihuBs ClarRDOFYlmOfeGBFppGxeQWkE3YiSg2eu4NVYHfaeNWSDpJ3zLNHle/w2ASaTc6Adg8hp cjaDF9SNtz7LfbXHnlT0ErqvKsU5/B4= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-389-yHaOrIWFOfelOZBRgX_t6Q-1; Thu, 02 Nov 2023 07:45:51 -0400 X-MC-Unique: yHaOrIWFOfelOZBRgX_t6Q-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id ADFDE3C14908; Thu, 2 Nov 2023 11:45:49 +0000 (UTC) Received: from secure.mitica (unknown [10.39.195.26]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3344A2026D6E; Thu, 2 Nov 2023 11:45:42 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Cc: Eric Farman , Laurent Vivier , David Gibson , qemu-block@nongnu.org, Stefan Hajnoczi , Marcel Apfelbaum , Kevin Wolf , David Hildenbrand , Samuel Thibault , qemu-s390x@nongnu.org, Richard Henderson , Leonardo Bras , Corey Minyard , Ilya Leoshkevich , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Markus Armbruster , Christian Borntraeger , Eduardo Habkost , Paolo Bonzini , qemu-ppc@nongnu.org, "Michael S. Tsirkin" , Peter Maydell , Halil Pasic , Gerd Hoffmann , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Li Zhijian , Eric Blake , "Denis V. Lunev" , Hanna Reitz , Fabiano Rosas , Stefan Berger , qemu-arm@nongnu.org, Daniel Henrique Barboza , Thomas Huth , Corey Minyard , John Snow , Jeff Cody , Peter Xu , Nicholas Piggin , Juan Quintela , Harsh Prateek Bora , Jason Wang , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Mark Cave-Ayland , Fam Zheng , Het Gala , Aravind Retnakaran Subject: [PULL 37/40] migration: modify migration_channels_and_uri_compatible() for new QAPI syntax Date: Thu, 2 Nov 2023 12:40:51 +0100 Message-ID: <20231102114054.44360-38-quintela@redhat.com> In-Reply-To: <20231102114054.44360-1-quintela@redhat.com> References: <20231102114054.44360-1-quintela@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.4 Received-SPF: pass client-ip=170.10.129.124; envelope-from=quintela@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.393, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable 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+alex.bennee=linaro.org@nongnu.org Sender: qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org X-TUID: 0+ZzvgtKwr2R From: Het Gala migration_channels_and_uri_compatible() check for transport mechanism suitable for multifd migration gets executed when the caller calls old uri syntax. It needs it to be run when using the modern MigrateChannel QAPI syntax too. After URI -> 'MigrateChannel' : migration_channels_and_uri_compatible() -> migration_channels_and_transport_compatible() passes object as argument and check for valid transport mechanism. Suggested-by: Aravind Retnakaran Signed-off-by: Het Gala Reviewed-by: Daniel P. Berrangé Signed-off-by: Fabiano Rosas Reviewed-by: Juan Quintela Signed-off-by: Juan Quintela Message-ID: <20231023182053.8711-12-farosas@suse.de> --- migration/migration.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index a9cd5e2d5d..70725a89ab 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -128,17 +128,20 @@ static bool migration_needs_multiple_sockets(void) return migrate_multifd() || migrate_postcopy_preempt(); } -static bool uri_supports_multi_channels(const char *uri) +static bool transport_supports_multi_channels(SocketAddress *saddr) { - return strstart(uri, "tcp:", NULL) || strstart(uri, "unix:", NULL) || - strstart(uri, "vsock:", NULL); + return saddr->type == SOCKET_ADDRESS_TYPE_INET || + saddr->type == SOCKET_ADDRESS_TYPE_UNIX || + saddr->type == SOCKET_ADDRESS_TYPE_VSOCK; } static bool -migration_channels_and_uri_compatible(const char *uri, Error **errp) +migration_channels_and_transport_compatible(MigrationAddress *addr, + Error **errp) { if (migration_needs_multiple_sockets() && - !uri_supports_multi_channels(uri)) { + (addr->transport == MIGRATION_ADDRESS_TYPE_SOCKET) && + !transport_supports_multi_channels(&addr->u.socket)) { error_setg(errp, "Migration requires multi-channel URIs (e.g. tcp)"); return false; } @@ -534,15 +537,15 @@ static void qemu_start_incoming_migration(const char *uri, bool has_channels, return; } - /* URI is not suitable for migration? */ - if (!migration_channels_and_uri_compatible(uri, errp)) { - return; - } - if (uri && !migrate_uri_parse(uri, &channel, errp)) { return; } + /* transport mechanism not suitable for migration? */ + if (!migration_channels_and_transport_compatible(channel, errp)) { + return; + } + migrate_set_state(&mis->state, MIGRATION_STATUS_NONE, MIGRATION_STATUS_SETUP); @@ -1947,15 +1950,15 @@ void qmp_migrate(const char *uri, bool has_channels, return; } - /* URI is not suitable for migration? */ - if (!migration_channels_and_uri_compatible(uri, errp)) { - return; - } - if (!migrate_uri_parse(uri, &channel, errp)) { return; } + /* transport mechanism not suitable for migration? */ + if (!migration_channels_and_transport_compatible(channel, errp)) { + return; + } + resume_requested = has_resume && resume; if (!migrate_prepare(s, has_blk && blk, has_inc && inc, resume_requested, errp)) { -- 2.41.0