From patchwork Thu Nov 24 17:33:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Eugenio Perez Martin X-Patchwork-Id: 13055225 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 9BC61C433FE for ; Thu, 24 Nov 2022 17:34:12 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oyG6N-0000dd-61; Thu, 24 Nov 2022 12:33:31 -0500 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 1oyG6L-0000dV-VP for qemu-devel@nongnu.org; Thu, 24 Nov 2022 12:33:29 -0500 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 1oyG6J-0006mi-KK for qemu-devel@nongnu.org; Thu, 24 Nov 2022 12:33:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669311206; 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=A7wiq0qxnd9wfCc1NF5dhXwcdg9dsXCdSq/spnL8jlI=; b=EHoXnOb5Z/jLuA1uzU/Wen84YnwSEjpfLswc2JWazencLMT4FIQs5R5l/GQniQkgvcrDIA 3PaFfHz7+vc6eKzM3SM2KtmcAZgZnPF8PRSA6bzmrflAX6IE+qlu/j8tSPqA15yV29rSg0 HKqyculC9JktBYA0Dlt1yTGyiAUP9SE= 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-180-lByKxTxwPD-jT4k_E5ftig-1; Thu, 24 Nov 2022 12:33:22 -0500 X-MC-Unique: lByKxTxwPD-jT4k_E5ftig-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 E24C086EB60; Thu, 24 Nov 2022 17:33:21 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.169]) by smtp.corp.redhat.com (Postfix) with ESMTP id 14DB24C819; Thu, 24 Nov 2022 17:33:18 +0000 (UTC) From: =?utf-8?q?Eugenio_P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , "Michael S. Tsirkin" , Jason Wang , Liuxiangdong , Zhu Lingshan , Laurent Vivier , Parav Pandit , Gautam Dawar , Lei Yang , Harpreet Singh Anand , Stefano Garzarella , Si-Wei Liu , Cindy Lu Subject: [PATCH v2 0/4] Guest announce feature emulation using Shadow VirtQueue Date: Thu, 24 Nov 2022 18:33:10 +0100 Message-Id: <20221124173314.2123015-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 A gratuitous ARP is recommended after a live migration to reduce the amount of time needed by the network links to be aware of the new location. A hypervisor may not have the knowledge of the guest network configuration, and this is especially true on passthrough devices, so its simpler to ask the guest to do it. However, the device control part of this feature can be totally emulated by qemu and shadow virtqueue, not needing any special feature from the actual vdpa device. The vdpa device must offer VIRTIO_NET_F_STATUS for the guest to access the status of virtio net config where announcement status bit is set. It is possible to emulate it as always active in case backend does not support it, but this is left for the future, as there are not many devices not offering it anyway. Patch 1 is less useful now that we don't emulate _F_STATUS anymore but QEMU coding style seems to prefer early return so leaving it in this version. v2: * Actually remove VIRTIO_NET_F_STATUS emulation. Comparing with v1, we offer the feature with virtio instead of using virtio/vhost-vdpa. v1: * Move code from vhost_net_get_config to virtio_net_get_config. RFC v2: * Add VIRTIO_NET_F_STATUS emulation. Eugenio PĂ©rez (4): virtio_net: Modify virtio_net_get_config to early return virtio_net: copy VIRTIO_NET_S_ANNOUNCE if device model has it vdpa: handle VIRTIO_NET_CTRL_ANNOUNCE in vhost_vdpa_net_handle_ctrl_avail vdpa: do not handle VIRTIO_NET_F_GUEST_ANNOUNCE in vhost-vdpa hw/net/virtio-net.c | 29 ++++++++++++++++------------- net/vhost-vdpa.c | 16 ++++++++++++---- 2 files changed, 28 insertions(+), 17 deletions(-)