From patchwork Fri Mar 17 14:55:36 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: 13179134 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 07D05C76196 for ; Fri, 17 Mar 2023 14:56:46 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pdBUu-0000PF-OY; Fri, 17 Mar 2023 10:56:00 -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 1pdBUo-0000OD-K8 for qemu-devel@nongnu.org; Fri, 17 Mar 2023 10:55:55 -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 1pdBUm-0007Jp-3V for qemu-devel@nongnu.org; Fri, 17 Mar 2023 10:55:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1679064950; 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=zLXUAwG0qA+Ze2K7Oy/VTXUEG+8+R1uY3kJW4PuAz4M=; b=X2MbZjjv7IUQ44MmVIBEi/e6QqfYFmVCkAjaGz1HLYhFUn20pdEq1nayPKaabgDEiF22zz FINePHaBSVJ2eNFlGm9w6g9IGGbpP25O5UDCX6hUTUq9PSRlQ0L5lNAp+ts6Tw519oKOnb ru7f1KJlfuHd10bi/lzmnz2yjjO8XYw= 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-282-W4kEZSR1Mum-679rfrCToA-1; Fri, 17 Mar 2023 10:55:47 -0400 X-MC-Unique: W4kEZSR1Mum-679rfrCToA-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7CDDD96DCA1; Fri, 17 Mar 2023 14:55:46 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.222]) by smtp.corp.redhat.com (Postfix) with ESMTP id BA8A143FBE; Fri, 17 Mar 2023 14:55:43 +0000 (UTC) From: =?utf-8?q?Eugenio_P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: alvaro.karsz@solid-run.com, Laurent Vivier , Gautam Dawar , Jason Wang , Harpreet Singh Anand , Zhu Lingshan , "Gonglei (Arei)" , "Michael S. Tsirkin" , Eli Cohen , si-wei.liu@oracle.com, Stefano Garzarella , longpeng2@huawei.com, Cindy Lu , Parav Pandit , Liuxiangdong , Shannon Nelson , Lei Yang Subject: [RFC PATCH for 8.1 0/6] Move ASID test to vhost-vdpa net initialization Date: Fri, 17 Mar 2023 15:55:36 +0100 Message-Id: <20230317145542.347368-1-eperezma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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_H2=-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 QEMU v8.0.0-rc0 is able to switch dynamically between vhost-vdpa passthrough and SVQ mode as long as the net device does not have CVQ. The net device state followed (and migrated) by CVQ requires special care. A pre-requisite to add CVQ to that framework is to determine if devices with CVQ are migratable or not at initialization time. The solution to it is to always shadow only CVQ, and vq groups and ASID are used for that. However, current qemu version only checks ASID at device start (as "driver set DRIVER_OK status bit"), not at device initialization. A check at initialization time is required. Otherwise, the guest would be able to set and remove migration blockers at will [1]. This series is a requisite for migration of vhost-vdpa net devices with CVQ. However it already makes sense by its own, as it reduces the number of ioctls at migration time, decreasing the error paths there. [1] https://lore.kernel.org/qemu-devel/2616f0cd-f9e8-d183-ea78-db1be4825d9c@redhat.com/ Eugenio PĂ©rez (6): vdpa: Remove status in reset tracing vdpa: add vhost_vdpa_reset_status_fd vdpa: add vhost_vdpa_set_dev_features_fd vdpa: return errno in vhost_vdpa_get_vring_group error vdpa: move CVQ isolation check to net_init_vhost_vdpa vdpa: Cache cvq group in VhostVDPAState include/hw/virtio/vhost-vdpa.h | 2 + hw/virtio/vhost-vdpa.c | 78 +++++++++---- net/vhost-vdpa.c | 205 +++++++++++++++++++++++++++------ hw/virtio/trace-events | 2 +- 4 files changed, 227 insertions(+), 60 deletions(-)