From patchwork Tue Aug 22 08:53:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Eugenio Perez Martin X-Patchwork-Id: 13360386 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D1F3BEE49AC for ; Tue, 22 Aug 2023 08:55:10 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYN8y-0005Dz-SQ; Tue, 22 Aug 2023 04:53:44 -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 1qYN8x-0005Dq-QU for qemu-devel@nongnu.org; Tue, 22 Aug 2023 04:53:43 -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 1qYN8v-0000dc-JZ for qemu-devel@nongnu.org; Tue, 22 Aug 2023 04:53:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1692694420; 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; bh=T9D2Be9EwR4YIV+1ZUUalL1dPCXNJ/BE0vE2iIdyW+I=; b=BS9epBiVSgtupA3kJd/vDjAbw2WdLfYFy/AWui2xhz0Jtq3l4axfDFeOiDY+Md035SxF7E k6oY6vtk8a7KVRQJOFLJxJBzBBdpYhb9eSqRkVaYVT1dNPvljhlq899mW3NbesWj3B8FGj LVGcHLyHJByz2zlUH704NbWxapvxdgo= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-246-VuMUbHZ3NQehe7wJLV_3dg-1; Tue, 22 Aug 2023 04:53:35 -0400 X-MC-Unique: VuMUbHZ3NQehe7wJLV_3dg-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 410F885D061; Tue, 22 Aug 2023 08:53:35 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.193.220]) by smtp.corp.redhat.com (Postfix) with ESMTP id BB0B440C6F4C; Tue, 22 Aug 2023 08:53:32 +0000 (UTC) From: =?utf-8?q?Eugenio_P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Laurent Vivier , Harpreet Singh Anand , Shannon Nelson , Stefano Garzarella , Lei Yang , "Michael S. Tsirkin" , Hawkins Jiawei , Dragos Tatulea , Gautam Dawar , si-wei.liu@oracle.com, Zhu Lingshan , Jason Wang , Parav Pandit , Cindy Lu Subject: [PATCH v3 0/5] Enable vdpa net migration with features depending on CVQ Date: Tue, 22 Aug 2023 10:53:25 +0200 Message-Id: <20230822085330.3978829-1-eperezma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass client-ip=170.10.133.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org At this moment the migration of net features that depends on CVQ is not possible, as there is no reliable way to restore the device state like mac address, number of enabled queues, etc to the destination. This is mainly caused because the device must only read CVQ, and process all the commands before resuming the dataplane. This series lift that requirement, sending the VHOST_VDPA_SET_VRING_ENABLE ioctl for dataplane vqs only after the device has processed all commands. Tested-by: Lei Yang --- v3: * Fix subject typo and expand message of patch ("vdpa: move vhost_vdpa_set_vring_ready to the caller"). v2: * Factor out VRING_ENABLE ioctls from vhost_vdpa_dev_start to the caller, instead of providing a callback to know if it must be called or not. * at https://lists.nongnu.org/archive/html/qemu-devel/2023-07/msg05447.html RFC: * Enable vqs early in case CVQ cannot be shadowed. * at https://lists.gnu.org/archive/html/qemu-devel/2023-07/msg01325.html Eugenio PĂ©rez (5): vdpa: use first queue SVQ state for CVQ default vdpa: export vhost_vdpa_set_vring_ready vdpa: rename vhost_vdpa_net_load to vhost_vdpa_net_cvq_load vdpa: move vhost_vdpa_set_vring_ready to the caller vdpa: remove net cvq migration blocker include/hw/virtio/vhost-vdpa.h | 1 + hw/virtio/vdpa-dev.c | 3 ++ hw/virtio/vhost-vdpa.c | 22 +++++----- net/vhost-vdpa.c | 75 +++++++++++++++++++--------------- hw/virtio/trace-events | 2 +- 5 files changed, 57 insertions(+), 46 deletions(-)