From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463165; cv=none; d=zohomail.com; s=zohoarc; b=ZA3l3JVk0nSVXoA6ByHpNjyBYIKBo8BxP03Cq/eDnVylnLXJz9lC01IuyjQyo6ju4Z/6gFtpLAWvvREBPa8eaI15HPZJf91GX3qpszpPDZLquRTmENND3Rgkswhqpp72Sf5jfQ1tQXbSWTyhFQ1tqAIkjw1y9ZlRe00bc2qn1tU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463165; h=Content-Type: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=ZJjoWNgiO9pSxFfxgEXPumFynQaR4e570fIWsLS9YCg=; b=ZtwoMZhnc1DQn8V0PDmbigwb0bYVhhL9sVz4h6atWOhS/TX83BStDJ+2YbY8O3VFhTKCYoJk1hy1AJ7kJWZ7jkIPe3azn3aUXj1uYaVR5DEzhWim/boiGMOz7rxooPk0sRE5A/Yt1Nd/DQeEIwNeXD+cSSSsdPIFPE6ZeQ59HR8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1659463165567541.9202398721825; Tue, 2 Aug 2022 10:59:25 -0700 (PDT) Received: from localhost ([::1]:35012 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwAu-0003NN-Bu for importer@patchew.org; Tue, 02 Aug 2022 13:59:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58062) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9K-0000w1-6R for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:52642) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9I-0003ch-LH for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:45 -0400 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-650-b0w5GStNPlufniqS_oJqDQ-1; Tue, 02 Aug 2022 13:57:40 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E285029AA382; Tue, 2 Aug 2022 17:57:38 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1E058492C3B; Tue, 2 Aug 2022 17:57:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463064; 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=ZJjoWNgiO9pSxFfxgEXPumFynQaR4e570fIWsLS9YCg=; b=K1bfDVFLPS/lidyo8pO+6VFAjGoWgrB5bLdRJmTnahziZaImslZeNFkpHpmc8gTFvlfYxM ckA43/4rxZ4qTNjjXoO9B88a/2ugsCaYWWgagz/fJyPAbwHBOGQb/66cMnRoxwChUUX6wp WBSW+VMDZXUWr5TNNyf45bFSSuCYvu0= X-MC-Unique: b0w5GStNPlufniqS_oJqDQ-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 01/10] vhost: stop transfer elem ownership in vhost_handle_guest_kick Date: Tue, 2 Aug 2022 19:57:22 +0200 Message-Id: <20220802175731.312115-2-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.133.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463166616100001 It was easier to allow vhost_svq_add to handle the memory. Now that we will allow qemu to add elements to a SVQ without the guest's knowledge, it's better to handle it in the caller. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-shadow-virtqueue.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-vi= rtqueue.c index e4956728dd..ffd2b2c972 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -233,9 +233,6 @@ static void vhost_svq_kick(VhostShadowVirtqueue *svq) /** * Add an element to a SVQ. * - * The caller must check that there is enough slots for the new element. It - * takes ownership of the element: In case of failure not ENOSPC, it is fr= ee. - * * Return -EINVAL if element is invalid, -ENOSPC if dev queue is full */ int vhost_svq_add(VhostShadowVirtqueue *svq, const struct iovec *out_sg, @@ -252,7 +249,6 @@ int vhost_svq_add(VhostShadowVirtqueue *svq, const stru= ct iovec *out_sg, =20 ok =3D vhost_svq_add_split(svq, out_sg, out_num, in_sg, in_num, &qemu_= head); if (unlikely(!ok)) { - g_free(elem); return -EINVAL; } =20 @@ -293,7 +289,7 @@ static void vhost_handle_guest_kick(VhostShadowVirtqueu= e *svq) virtio_queue_set_notification(svq->vq, false); =20 while (true) { - VirtQueueElement *elem; + g_autofree VirtQueueElement *elem; int r; =20 if (svq->next_guest_avail_elem) { @@ -324,12 +320,14 @@ static void vhost_handle_guest_kick(VhostShadowVirtqu= eue *svq) * queue the current guest descriptor and ignore kicks * until some elements are used. */ - svq->next_guest_avail_elem =3D elem; + svq->next_guest_avail_elem =3D g_steal_pointer(&elem); } =20 /* VQ is full or broken, just return and ignore kicks */ return; } + /* elem belongs to SVQ or external caller now */ + elem =3D NULL; } =20 virtio_queue_set_notification(svq->vq, true); --=20 2.31.1 From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463349; cv=none; d=zohomail.com; s=zohoarc; b=g/jYdXFV7EjkyF5AJaVSjEN86LzGJfycYp5qWmLAWDFcdE4qJ1Ev6ifepP23AXjagtFFm1OchM8TxR463u68QKCr1ToRGSp7JTzFcbZ7oCWMhShm6p8dXRj43QxNkWObYhqvcYKJHKxoX6/vTvny5QPrtwaXxM060+an04hiEq8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463349; h=Content-Type: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=mFcSWUZrd/1meZg3dITq3TzQyarfrxoNesnu+w7BZmQ=; b=Q6m+kuLaEW70dXifUVkgA3lJxmTkkefHnCWYZk6uo1Y0lWmWUhEbYYLhqbvxDW/fnfc5m5D7pLFXmsus9z9NxbB9avktsL1DniQ7gO9aMjrINoXODZTMUQgAQgh8Nbvpe3DP9Lk9oW+817Q2LcWhynWTfwBcamBLiFsY9Ev19ZM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1659463349650621.3225535813918; Tue, 2 Aug 2022 11:02:29 -0700 (PDT) Received: from localhost ([::1]:42162 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwDs-0008UR-Hu for importer@patchew.org; Tue, 02 Aug 2022 14:02:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58080) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9N-00010P-H2 for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:47463) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9L-0003cz-N3 for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:49 -0400 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-459-56PR7F1XOiifKKUlt3bFHA-1; Tue, 02 Aug 2022 13:57:42 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id EF1A81C06ECE; Tue, 2 Aug 2022 17:57:41 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2E0EC492C3B; Tue, 2 Aug 2022 17:57:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463066; 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=mFcSWUZrd/1meZg3dITq3TzQyarfrxoNesnu+w7BZmQ=; b=e0QjG+jO5AG4O+RG8WDMb+VJq3KAnDG/5k2NZlRTOkCKp3a5Lbq1KnI0TZQr1XkAET4fNO d4j8jcwtpkQnuJDXueoiK3wxgaj7Qxa4zeB4QOZ1P5+Aw0kwnn6DdXqOj/5nP1lRYL4j7V Hj/bim2eQ7hcCi6PP4vGZOI444kopr8= X-MC-Unique: 56PR7F1XOiifKKUlt3bFHA-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 02/10] vhost: use SVQ element ndescs instead of opaque data for desc validation Date: Tue, 2 Aug 2022 19:57:23 +0200 Message-Id: <20220802175731.312115-3-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463350025100001 Since we're going to allow SVQ to add elements without the guest's knowledge and without its own VirtQueueElement, it's easier to check if an element is a valid head checking a different thing than the VirtQueueElement. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-shadow-virtqueue.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-vi= rtqueue.c index ffd2b2c972..e6eebd0e8d 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -414,7 +414,7 @@ static VirtQueueElement *vhost_svq_get_buf(VhostShadowV= irtqueue *svq, return NULL; } =20 - if (unlikely(!svq->desc_state[used_elem.id].elem)) { + if (unlikely(!svq->desc_state[used_elem.id].ndescs)) { qemu_log_mask(LOG_GUEST_ERROR, "Device %s says index %u is used, but it was not available", svq->vdev->name, used_elem.id); @@ -422,6 +422,7 @@ static VirtQueueElement *vhost_svq_get_buf(VhostShadowV= irtqueue *svq, } =20 num =3D svq->desc_state[used_elem.id].ndescs; + svq->desc_state[used_elem.id].ndescs =3D 0; last_used_chain =3D vhost_svq_last_desc_of_chain(svq, num, used_elem.i= d); svq->desc_next[last_used_chain] =3D svq->free_head; svq->free_head =3D used_elem.id; --=20 2.31.1 From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463621; cv=none; d=zohomail.com; s=zohoarc; b=JbxjcFfAyG5Y2gECpQI8+/7FVlKwX7zs7TCKnZRuTag5Zwb9U4042AXsfgaGI/rUtL33iECZX4gNttwOUdvHBi8Hza9O3xuTBo9vNBn53JvxkqsSgntqk9zsMFPEEfldambYfzqe86bIvjCGCTQWB1SIQGKF4pnUDKsLnbeu7Jg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463621; h=Content-Type: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=HwL10+yfmwj27lcDaI2PWHZqXN57tbnZuA/PXCVpwig=; b=QoO+/lPo9i4D+IbKZmj53V9H5SLPpdWlRZQbxrXaD2mLLM76Kroa8HdGG8hOEvmExZlrqf1yNax+Rg0cPR8rBYKfZVekG39jAtgrncy+IaIMVKrwa9WGJm/VoiM9hpd3cKafWZ10JxvbdaLDWc36XyqkxvmEpQuiYvvK6yfol0A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 165946362185275.29369966430681; Tue, 2 Aug 2022 11:07:01 -0700 (PDT) Received: from localhost ([::1]:49626 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwIG-0005Rl-Gb for importer@patchew.org; Tue, 02 Aug 2022 14:07:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58106) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9P-00015Z-Jv for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:39889) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9O-0003dG-2D for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:51 -0400 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-468-TlUPWHliNPGg4auDSpliWA-1; Tue, 02 Aug 2022 13:57:45 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 091A52813D21; Tue, 2 Aug 2022 17:57:45 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3BCFE492C3B; Tue, 2 Aug 2022 17:57:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463069; 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=HwL10+yfmwj27lcDaI2PWHZqXN57tbnZuA/PXCVpwig=; b=h/5kwcQpF3xzumWq20EtqcLiN/OhzVuaE48t/++6BR9+lbr2gi2xbdErIbkgAqxOh0m/gK nfynB2dD2V3BsRo5AOODcqtxDn+oEDmc7w6h8UNHLOH6W933NW7bSwOP35E/edA5hl9VpD vcFR+qlJHklU5eTVwB+PRwt1XT/6VG8= X-MC-Unique: TlUPWHliNPGg4auDSpliWA-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 03/10] vhost: Do not depend on !NULL VirtQueueElement on vhost_svq_flush Date: Tue, 2 Aug 2022 19:57:24 +0200 Message-Id: <20220802175731.312115-4-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.133.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463623146100001 Since QEMU will be able to inject new elements on CVQ to restore the state, we need not to depend on a VirtQueueElement to know if a new element has been used by the device or not. Instead of check that, check if there are new elements only using used idx on vhost_svq_flush. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-shadow-virtqueue.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-vi= rtqueue.c index e6eebd0e8d..fdb550c31b 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -491,7 +491,7 @@ static void vhost_svq_flush(VhostShadowVirtqueue *svq, /** * Poll the SVQ for one device used buffer. * - * This function race with main event loop SVQ polling, so extra + * This function races with main event loop SVQ polling, so extra * synchronization is needed. * * Return the length written by the device. @@ -499,20 +499,20 @@ static void vhost_svq_flush(VhostShadowVirtqueue *svq, size_t vhost_svq_poll(VhostShadowVirtqueue *svq) { int64_t start_us =3D g_get_monotonic_time(); - do { + while (true) { uint32_t len; - VirtQueueElement *elem =3D vhost_svq_get_buf(svq, &len); - if (elem) { - return len; - } =20 if (unlikely(g_get_monotonic_time() - start_us > 10e6)) { return 0; } =20 - /* Make sure we read new used_idx */ - smp_rmb(); - } while (true); + if (!vhost_svq_more_used(svq)) { + continue; + } + + vhost_svq_get_buf(svq, &len); + return len; + } } =20 /** --=20 2.31.1 From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463174; cv=none; d=zohomail.com; s=zohoarc; b=I25SCd3Lav8/qKysaDjs7lpwVz1NgGdg/R1l6pUNOZg34zRMzan/Dg6HWvmERn0J6WMgisSOKiKXHHD4F2GfiCw/ReSf8WWFj0kPwogv/OLr/dmfQIeY7WMzdTL51Faic7TfEB6LjFlnkncE6y2BCWvrH363ps+1SNfHgw/ZQhY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463174; h=Content-Type: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=llogMxhLwS4wPcct3O3yVcIdtEGtdPdorDjYbZBJ6UM=; b=bFmMgh1keK/UbSInXOev4V1VDzCCD4N5vNTLMWJCTBehcOX7t30ZEWFjH4//kQiM+QPghgrHqqMle+CjqjL80rzyqAewaYrqOMdwGYlWDeqnrLIJFgi+ZEzAkBZLRFCpIfq7gW1T/ICF5xzJrD2R585F/DHDfHPlPvOzsOMpP98= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1659463174032736.2344274156037; Tue, 2 Aug 2022 10:59:34 -0700 (PDT) Received: from localhost ([::1]:35544 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwB2-0003jO-Rd for importer@patchew.org; Tue, 02 Aug 2022 13:59:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58114) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9R-00016x-3z for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:52509) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9O-0003dK-Ix for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:51 -0400 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-281-rKb6Lx-dNfm6Fp3RxEB-xA-1; Tue, 02 Aug 2022 13:57:48 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0F1A9801231; Tue, 2 Aug 2022 17:57:48 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4942C492C3B; Tue, 2 Aug 2022 17:57:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463070; 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=llogMxhLwS4wPcct3O3yVcIdtEGtdPdorDjYbZBJ6UM=; b=a3kFadW6bRge1+miMLPFg2h+MxLUnnB+lK2FqSF27AqXxFhqkOuK2hfW6MkzPkGUBzJIrb xcSBDX6QyosUqAe517jm7as+b0Iv1E+Ff3jTienz08lrp0+bRNW3oz3O6ahKz3ZP9b/HbO BPfSnEB76I0qC6jdMLqDtXdFFzhbAyw= X-MC-Unique: rKb6Lx-dNfm6Fp3RxEB-xA-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 04/10] vdpa: Get buffers from VhostVDPAState on vhost_vdpa_net_cvq_map_elem Date: Tue, 2 Aug 2022 19:57:25 +0200 Message-Id: <20220802175731.312115-5-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463174527100001 There is no need to get them by parameter, since they're contained in VhostVDPAState. The only useful information was the written length in out. Simplify the function removing those. Signed-off-by: Eugenio P=C3=A9rez --- net/vhost-vdpa.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index ac1810723c..c6699edfbc 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -303,34 +303,29 @@ dma_map_err: =20 /** * Copy the guest element into a dedicated buffer suitable to be sent to N= IC - * - * @iov: [0] is the out buffer, [1] is the in one */ static bool vhost_vdpa_net_cvq_map_elem(VhostVDPAState *s, VirtQueueElement *elem, - struct iovec *iov) + size_t *out_len) { size_t in_copied; bool ok; =20 - iov[0].iov_base =3D s->cvq_cmd_out_buffer; ok =3D vhost_vdpa_cvq_map_buf(&s->vhost_vdpa, elem->out_sg, elem->out_= num, - vhost_vdpa_net_cvq_cmd_len(), iov[0].iov_b= ase, - &iov[0].iov_len, false); + vhost_vdpa_net_cvq_cmd_len(), + s->cvq_cmd_out_buffer, out_len, false); if (unlikely(!ok)) { return false; } =20 - iov[1].iov_base =3D s->cvq_cmd_in_buffer; ok =3D vhost_vdpa_cvq_map_buf(&s->vhost_vdpa, NULL, 0, - sizeof(virtio_net_ctrl_ack), iov[1].iov_ba= se, - &in_copied, true); + sizeof(virtio_net_ctrl_ack), + s->cvq_cmd_in_buffer, &in_copied, true); if (unlikely(!ok)) { vhost_vdpa_cvq_unmap_buf(&s->vhost_vdpa, s->cvq_cmd_out_buffer); return false; } =20 - iov[1].iov_len =3D sizeof(virtio_net_ctrl_ack); return true; } =20 @@ -395,7 +390,7 @@ static int vhost_vdpa_net_handle_ctrl_avail(VhostShadow= Virtqueue *svq, int r =3D -EINVAL; bool ok; =20 - ok =3D vhost_vdpa_net_cvq_map_elem(s, elem, dev_buffers); + ok =3D vhost_vdpa_net_cvq_map_elem(s, elem, &dev_buffers[0].iov_len); if (unlikely(!ok)) { goto out; } --=20 2.31.1 From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463776; cv=none; d=zohomail.com; s=zohoarc; b=ZoheAhcDbWqDA/Iaeuc83ViLuwhKXFwcDnkuNDKh82/SuNwf+kklz3EXvmEe8b6VRST3o8yfYN+WGivOTOiRXQ7NjJzZyc8kr8wbIYwBynnq3yAWa5vLttgaemUR0vXCLOjfNf4WguW7dKhNGArxo4Fb7Isc+n+yKq3WxZ5u9Ps= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463776; h=Content-Type: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=OsCSTTnWlEBOYdl6G8Z7JvD5ZH5EWFYrxQxq3Q3qHIw=; b=fBhXjuX8+8uwgaFdSxbcEOS3dSzZHHaGq9TM50dRsfMS6bwnBpcGleS9s4CV4/ijgdnM7lvqfBaDalnpHlykR41H0miIq0L47upw4ezqmHnk8KA90Jp15Nep2uBIQpuK23blTjJjUxrAvfihIgkH99Mr4yJnBfjdSJNbqSEs8Lo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1659463776634156.25936670641624; Tue, 2 Aug 2022 11:09:36 -0700 (PDT) Received: from localhost ([::1]:53864 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwKl-0000DB-CX for importer@patchew.org; Tue, 02 Aug 2022 14:09:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58154) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9V-0001MW-Pu for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:59734) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9U-0003gT-09 for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:57 -0400 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-531-PFPT8DZyPTqInGYdnuUkIw-1; Tue, 02 Aug 2022 13:57:51 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 16B788037AC; Tue, 2 Aug 2022 17:57:51 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4E45E492C3B; Tue, 2 Aug 2022 17:57:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463075; 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=OsCSTTnWlEBOYdl6G8Z7JvD5ZH5EWFYrxQxq3Q3qHIw=; b=eiNM3hHFO4FrRBBKk6wFfvn5XKPBWHlDBkRPuqHe6sdCUui39NYQJc2ofYZ9I0ZyOp7PwA Zc2VjhION7Cndx/pVIbwdV0p2E3huoBCGh9UXSq7BsqdDgEN98SgRlm9QJObhzbd87W6zX GuniEb6PgNiVP3sAHG0/Elz+obMY1CM= X-MC-Unique: PFPT8DZyPTqInGYdnuUkIw-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 05/10] vdpa: Extract vhost_vdpa_net_cvq_add from vhost_vdpa_net_handle_ctrl_avail Date: Tue, 2 Aug 2022 19:57:26 +0200 Message-Id: <20220802175731.312115-6-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463778723100001 So we can reuse it to inject state messages. Signed-off-by: Eugenio P=C3=A9rez -- v5: * Do not use an artificial !NULL VirtQueueElement * Use only out size instead of iovec dev_buffers for these functions. --- net/vhost-vdpa.c | 73 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 24 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index c6699edfbc..33bf3d6409 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -329,6 +329,52 @@ static bool vhost_vdpa_net_cvq_map_elem(VhostVDPAState= *s, return true; } =20 +static virtio_net_ctrl_ack vhost_vdpa_net_cvq_add(VhostVDPAState *s, + size_t out_len) +{ + /* Buffers for the device */ + const struct iovec out =3D { + .iov_base =3D s->cvq_cmd_out_buffer, + .iov_len =3D out_len, + }; + const struct iovec in =3D { + .iov_base =3D s->cvq_cmd_in_buffer, + .iov_len =3D sizeof(virtio_net_ctrl_ack), + }; + VhostShadowVirtqueue *svq =3D g_ptr_array_index(s->vhost_vdpa.shadow_v= qs, 0); + /* in buffer used for device model */ + virtio_net_ctrl_ack status; + size_t dev_written; + int r; + + r =3D vhost_svq_add(svq, &out, 1, &in, 1, NULL); + if (unlikely(r !=3D 0)) { + if (unlikely(r =3D=3D -ENOSPC)) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: No space on device queue\n= ", + __func__); + } + return VIRTIO_NET_ERR; + } + + /* + * We can poll here since we've had BQL from the time we sent the + * descriptor. Also, we need to take the answer before SVQ pulls by it= self, + * when BQL is released + */ + dev_written =3D vhost_svq_poll(svq); + if (unlikely(dev_written < sizeof(status))) { + error_report("Insufficient written data (%zu)", dev_written); + return VIRTIO_NET_ERR; + } + + memcpy(&status, s->cvq_cmd_in_buffer, sizeof(status)); + if (status !=3D VIRTIO_NET_OK) { + return VIRTIO_NET_ERR; + } + + return VIRTIO_NET_OK; +} + /** * Do not forward commands not supported by SVQ. Otherwise, the device cou= ld * accept it and qemu would not know how to update the device model. @@ -375,7 +421,7 @@ static int vhost_vdpa_net_handle_ctrl_avail(VhostShadow= Virtqueue *svq, void *opaque) { VhostVDPAState *s =3D opaque; - size_t in_len, dev_written; + size_t in_len; virtio_net_ctrl_ack status =3D VIRTIO_NET_ERR; /* out and in buffers sent to the device */ struct iovec dev_buffers[2] =3D { @@ -387,7 +433,6 @@ static int vhost_vdpa_net_handle_ctrl_avail(VhostShadow= Virtqueue *svq, .iov_base =3D &status, .iov_len =3D sizeof(status), }; - int r =3D -EINVAL; bool ok; =20 ok =3D vhost_vdpa_net_cvq_map_elem(s, elem, &dev_buffers[0].iov_len); @@ -400,27 +445,7 @@ static int vhost_vdpa_net_handle_ctrl_avail(VhostShado= wVirtqueue *svq, goto out; } =20 - r =3D vhost_svq_add(svq, &dev_buffers[0], 1, &dev_buffers[1], 1, elem); - if (unlikely(r !=3D 0)) { - if (unlikely(r =3D=3D -ENOSPC)) { - qemu_log_mask(LOG_GUEST_ERROR, "%s: No space on device queue\n= ", - __func__); - } - goto out; - } - - /* - * We can poll here since we've had BQL from the time we sent the - * descriptor. Also, we need to take the answer before SVQ pulls by it= self, - * when BQL is released - */ - dev_written =3D vhost_svq_poll(svq); - if (unlikely(dev_written < sizeof(status))) { - error_report("Insufficient written data (%zu)", dev_written); - goto out; - } - - memcpy(&status, dev_buffers[1].iov_base, sizeof(status)); + status =3D vhost_vdpa_net_cvq_add(s, dev_buffers[0].iov_len); if (status !=3D VIRTIO_NET_OK) { goto out; } @@ -445,7 +470,7 @@ out: if (dev_buffers[1].iov_base) { vhost_vdpa_cvq_unmap_buf(&s->vhost_vdpa, dev_buffers[1].iov_base); } - return r; + return 0; } =20 static const VhostShadowVirtqueueOps vhost_vdpa_net_svq_ops =3D { --=20 2.31.1 From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463873; cv=none; d=zohomail.com; s=zohoarc; b=kvjEUCR2FEQAW4GdrndGFu6UjrWwI+K0sl1cFO9EejETVlsKclaImMf6lDJqPzHutbTxd85v3KS4xWt6XU+SRnWs/XbRKDA87IZBNTKooCEsDavvQB6SqNRRbDgsd7OIm/eGooin5+qFyNiFC/g29P6FNRnrPxjGfYxGdDuFcsw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463873; h=Content-Type: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=H0MEFEcFCR3nJf5Fpaw1GnXU3DYzE09pfSEcIvOnUoE=; b=e6XhnFgcuPYFJ73qdRmVGJiIOQ4VJXWF6HNX5HALrgSir4eplwliNT0cm28NRjwFUXQbns4FhSaECMDjTeafdhhLwMZRk+kQu+HSaerM2A5tvTFrQasObDoq+LhLJsUQqsQbBWD7zlYpU11mnbciaHtrFZtI4fr3zK0P2Jf/NYY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1659463873665434.8583740681769; Tue, 2 Aug 2022 11:11:13 -0700 (PDT) Received: from localhost ([::1]:56562 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwMK-0002BI-JY for importer@patchew.org; Tue, 02 Aug 2022 14:11:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58158) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9W-0001PO-Kd for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:44837) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9U-0003gZ-P5 for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:57:58 -0400 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-615-ptabsn4CMoCBS6qoPscipg-1; Tue, 02 Aug 2022 13:57:54 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1E9D1801755; Tue, 2 Aug 2022 17:57:54 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 566C4492C3B; Tue, 2 Aug 2022 17:57:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463076; 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=H0MEFEcFCR3nJf5Fpaw1GnXU3DYzE09pfSEcIvOnUoE=; b=HPsAWRtfJ/eaJSRO2YxgFerMNVJor0fhMwF9lrNdv6grdBxWCw4N/mDSGiZRuvIgjOyY7o ivl+M6XxwJihzCKqbhkMenT0Ue0moKibcnCHCBZ4Tdw+UL5O9XWI0rsrF+r1T9MZ/FkmBY 4Lqh5elZ5Av/SqEnoGvkBi5jp9EoY9Y= X-MC-Unique: ptabsn4CMoCBS6qoPscipg-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 06/10] vdpa: Make vhost_vdpa_net_cvq_map_elem accept any out sg Date: Tue, 2 Aug 2022 19:57:27 +0200 Message-Id: <20220802175731.312115-7-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463874589100001 So its generic enough to accept any out sg buffer and we can inject NIC state messages. Signed-off-by: Eugenio P=C3=A9rez --- v5: Accept out sg instead of dev_buffers[] --- net/vhost-vdpa.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 33bf3d6409..2421bca347 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -302,16 +302,16 @@ dma_map_err: } =20 /** - * Copy the guest element into a dedicated buffer suitable to be sent to N= IC + * Maps out sg and in buffer into dedicated buffers suitable to be sent to= NIC */ -static bool vhost_vdpa_net_cvq_map_elem(VhostVDPAState *s, - VirtQueueElement *elem, - size_t *out_len) +static bool vhost_vdpa_net_cvq_map_sg(VhostVDPAState *s, + const struct iovec *out, size_t out_= num, + size_t *out_len) { size_t in_copied; bool ok; =20 - ok =3D vhost_vdpa_cvq_map_buf(&s->vhost_vdpa, elem->out_sg, elem->out_= num, + ok =3D vhost_vdpa_cvq_map_buf(&s->vhost_vdpa, out, out_num, vhost_vdpa_net_cvq_cmd_len(), s->cvq_cmd_out_buffer, out_len, false); if (unlikely(!ok)) { @@ -435,7 +435,8 @@ static int vhost_vdpa_net_handle_ctrl_avail(VhostShadow= Virtqueue *svq, }; bool ok; =20 - ok =3D vhost_vdpa_net_cvq_map_elem(s, elem, &dev_buffers[0].iov_len); + ok =3D vhost_vdpa_net_cvq_map_sg(s, elem->out_sg, elem->out_num, + &dev_buffers[0].iov_len); if (unlikely(!ok)) { goto out; } --=20 2.31.1 From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463375; cv=none; d=zohomail.com; s=zohoarc; b=gLbJdo4nwdYwT8v2TU6wphIUiVWxMyte6K/k8FDON2n+QuYYqim0aAtIuIzHQLVHOdkFxXvN+3pEdpx0ac5b97GISyrceHX8wa4qgZ3NHknCxeUmORTJcxaxzFtXeZBUfX30X9nyVUuH1jArVHSB4ub6Cnn7UYssxjrAJi0YzEo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463375; h=Content-Type: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=TWR/iUsjkL9oIXTi+ICA5zH5FX+8+oEnrInycmxf6Yo=; b=ATaKJ2cmaplwclKMwR3t3j91sArBPxnaVDnmS7tRnoQ7gjbAoQb1Ak4XfRBnPJbvnZKOA/4662ole3ISFvdOBlBuIaPCK3n3aTymDecMbCZK/zxxhzHj5YfEzPowl9YV4FnVFu86M62869sj7EZflyVl81FIPvkfU99LDMe4ywU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1659463375214372.0320175638914; Tue, 2 Aug 2022 11:02:55 -0700 (PDT) Received: from localhost ([::1]:43220 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwEH-0000rg-5J for importer@patchew.org; Tue, 02 Aug 2022 14:02:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58172) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9Z-0001Uf-4q for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:58:01 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:47718) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9X-0003is-ME for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:58:00 -0400 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-90-GSO0P-J-MoKAiuQ-Lrx2UA-1; Tue, 02 Aug 2022 13:57:57 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 31A2A8041BE; Tue, 2 Aug 2022 17:57:57 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5EC17492C3B; Tue, 2 Aug 2022 17:57:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463079; 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=TWR/iUsjkL9oIXTi+ICA5zH5FX+8+oEnrInycmxf6Yo=; b=QXDaDHA07keGfHPyyKysGfxLM8wSZTcP85fw/KehY5SuLKhHZVjZX0KgOIPwjpL2ryLEd4 r5nOYAmsVkX2h5adI2gUviUsrhN/1lWVpbeLF5BfE0A/0ZlDAUhhhiUXJ9nwK7lpiUNuip DehFiQ3Ptc9biRvucXza9JBMGIJ2cGI= X-MC-Unique: GSO0P-J-MoKAiuQ-Lrx2UA-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 07/10] vdpa: add NetClientState->load() callback Date: Tue, 2 Aug 2022 19:57:28 +0200 Message-Id: <20220802175731.312115-8-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.133.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463376116100001 It allows per-net client operations right after device's successful start. In particular, to load the device status. Vhost-vdpa net will use it to add the CVQ buffers to restore the device status. Signed-off-by: Eugenio P=C3=A9rez --- v5: Rename start / load, naming it more specifically. --- include/net/net.h | 2 ++ hw/net/vhost_net.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/include/net/net.h b/include/net/net.h index 523136c7ac..a8d47309cd 100644 --- a/include/net/net.h +++ b/include/net/net.h @@ -44,6 +44,7 @@ typedef struct NICConf { =20 typedef void (NetPoll)(NetClientState *, bool enable); typedef bool (NetCanReceive)(NetClientState *); +typedef int (NetLoad)(NetClientState *); typedef ssize_t (NetReceive)(NetClientState *, const uint8_t *, size_t); typedef ssize_t (NetReceiveIOV)(NetClientState *, const struct iovec *, in= t); typedef void (NetCleanup) (NetClientState *); @@ -71,6 +72,7 @@ typedef struct NetClientInfo { NetReceive *receive_raw; NetReceiveIOV *receive_iov; NetCanReceive *can_receive; + NetLoad *load; NetCleanup *cleanup; LinkStatusChanged *link_status_changed; QueryRxFilter *query_rx_filter; diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index ccac5b7a64..a9bf72dcda 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -274,6 +274,13 @@ static int vhost_net_start_one(struct vhost_net *net, } } } + + if (net->nc->info->load) { + r =3D net->nc->info->load(net->nc); + if (r < 0) { + goto fail; + } + } return 0; fail: file.fd =3D -1; --=20 2.31.1 From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463658; cv=none; d=zohomail.com; s=zohoarc; b=WCXeU0WhwFzN1fUsG82H6Glcca99YnJ/OSAD9u/8aEfWrO0wPlbKj3BCYEJ7EiyLUslkcyKaINaVYNruJsK4oL568wOQORLAPSsxmv+JaECSsMjWPNfL9S+o4ywbFsnqXQbB9gYWWQwUb89HmXQSeVHeXRrCQplDhnglXIeO4Zs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463658; h=Content-Type: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=dSMWHykyf4bOT2pCEu45Nck9YtoD0hxVk+4hBaCTS90=; b=mLjmX/nHm17nAkPZkT99XGHr8/ahPyDkfWbSwKAJgQkSuSk/o7lKmk9ZtpbtOymSDugKY8zGbwcROc+PTG3zS1AaUvQ0Y7Tx3jCVcfNt0JEtbHFNLznGRvDn7zcMz4rAX9OwPTxt5i+DObMBWmuuK8h1w8w4qWVVd27DmCf8Meg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1659463658258984.2066990416165; Tue, 2 Aug 2022 11:07:38 -0700 (PDT) Received: from localhost ([::1]:50508 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwIr-00062o-7g for importer@patchew.org; Tue, 02 Aug 2022 14:07:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58190) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9d-0001hM-Rc for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:58:05 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:54498) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9c-0003l3-B0 for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:58:05 -0400 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-626-xdMg7vbUOyqiTZbUQlOqKQ-1; Tue, 02 Aug 2022 13:58:00 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3B4793826248; Tue, 2 Aug 2022 17:58:00 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 71B57492C3B; Tue, 2 Aug 2022 17:57:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463083; 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=dSMWHykyf4bOT2pCEu45Nck9YtoD0hxVk+4hBaCTS90=; b=ZFNo7IzA5Zt9tO48TDfrlIzc1gNxOw85m/Pe0MYIzB+rtnl9i5p9lJYfYXqRISczfaB5sx oCHejlr+k4Bs4RaxWRDqR4iBXVvqpQlxQGNrEZjUY8/dm+Fe+/m5Wp94Jp1kYo/iO0KZnr qktAG20uauZYBpNFKGWdtgQTWO7bGR0= X-MC-Unique: xdMg7vbUOyqiTZbUQlOqKQ-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 08/10] vdpa: add net_vhost_vdpa_cvq_info NetClientInfo Date: Tue, 2 Aug 2022 19:57:29 +0200 Message-Id: <20220802175731.312115-9-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.133.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463659486100001 Next patches will add a new info callback to restore NIC status through CVQ. Since only the CVQ vhost device is needed, create it with a new NetClientInfo. Signed-off-by: Eugenio P=C3=A9rez --- v5: Create a new NetClientInfo instead of reusing the dataplane one. --- net/vhost-vdpa.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 2421bca347..8d400f2dff 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -375,6 +375,16 @@ static virtio_net_ctrl_ack vhost_vdpa_net_cvq_add(Vhos= tVDPAState *s, return VIRTIO_NET_OK; } =20 +static NetClientInfo net_vhost_vdpa_cvq_info =3D { + .type =3D NET_CLIENT_DRIVER_VHOST_VDPA, + .size =3D sizeof(VhostVDPAState), + .receive =3D vhost_vdpa_receive, + .cleanup =3D vhost_vdpa_cleanup, + .has_vnet_hdr =3D vhost_vdpa_has_vnet_hdr, + .has_ufo =3D vhost_vdpa_has_ufo, + .check_peer_type =3D vhost_vdpa_check_peer_type, +}; + /** * Do not forward commands not supported by SVQ. Otherwise, the device cou= ld * accept it and qemu would not know how to update the device model. @@ -496,7 +506,7 @@ static NetClientState *net_vhost_vdpa_init(NetClientSta= te *peer, nc =3D qemu_new_net_client(&net_vhost_vdpa_info, peer, device, name); } else { - nc =3D qemu_new_net_control_client(&net_vhost_vdpa_info, peer, + nc =3D qemu_new_net_control_client(&net_vhost_vdpa_cvq_info, peer, device, name); } snprintf(nc->info_str, sizeof(nc->info_str), TYPE_VHOST_VDPA); --=20 2.31.1 From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463184; cv=none; d=zohomail.com; s=zohoarc; b=V4zAEgjvPg1kapYcJEPvj2gSuvF7G+fBKpWs9ly1e2HAuQ5VyaZFn1zcujvMRBGbFiVexnutCW9uVL1Mhx6vC+tkLT7TfCwxkmPWwSBn8um7ZeroyJFnSoEPsN7YbY9PJryMW+MnWX6U7mOPSFRWgy+FrwUUgmnUkJ26aSX4Yjs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463184; h=Content-Type: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=ROTiFf/ghtUwz+t5YtpFTbVGZwHeiepB1ydvv/NzF5I=; b=ZGYOxurCfFBILIlO7pfEpAJD6W8DTz7oH1aPqmijee84FzJZxF3vFZOzB7u3fQIq1/AtYH/pgBa3+jvcaO3BR135/iw7IO/VA/YUDrlUXU+5DAsrESqpVpcv3LpbWl1lbLjxVl6X6DUAFyevEJBsxSDB2P5dLk39I1y7GXNNnvo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 16594631842851002.902636720213; Tue, 2 Aug 2022 10:59:44 -0700 (PDT) Received: from localhost ([::1]:36494 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwBD-0004Mz-5b for importer@patchew.org; Tue, 02 Aug 2022 13:59:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58230) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9f-0001jj-JU for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:58:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:48970) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9d-0003lG-NK for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:58:07 -0400 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-335-l12o12s8PH64t9N0vGD0bw-1; Tue, 02 Aug 2022 13:58:03 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 41D7B801755; Tue, 2 Aug 2022 17:58:03 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 79960492C3B; Tue, 2 Aug 2022 17:58:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463085; 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=ROTiFf/ghtUwz+t5YtpFTbVGZwHeiepB1ydvv/NzF5I=; b=Crht73kxC1x9Xa0qLOHJrOqCeXsOiPyIkOFObjAnc7OZ1AEaSZ+oUUZvsz5cFfxzuKv6KG pLngeH+2JnZoJOij6J1VATZ1SiLuX5PQCTGVfoUZwGb9DiMt3INzw2jVPzh7n/7YyaJY9Y jiNj5g2LPiUAzFno7d0OJ8qoU8M8f0o= X-MC-Unique: l12o12s8PH64t9N0vGD0bw-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 09/10] vdpa: Add virtio-net mac address via CVQ at start Date: Tue, 2 Aug 2022 19:57:30 +0200 Message-Id: <20220802175731.312115-10-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463186631100001 This is needed so the destination vdpa device see the same state a the guest set in the source. Signed-off-by: Eugenio P=C3=A9rez --- v5: * Rename s/start/load/ * Use independent NetClientInfo to only add load callback on cvq. --- net/vhost-vdpa.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 8d400f2dff..d489fcd91e 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -375,10 +375,60 @@ static virtio_net_ctrl_ack vhost_vdpa_net_cvq_add(Vho= stVDPAState *s, return VIRTIO_NET_OK; } =20 +static int vhost_vdpa_net_load(NetClientState *nc) +{ + VhostVDPAState *s =3D DO_UPCAST(VhostVDPAState, nc, nc); + struct vhost_vdpa *v =3D &s->vhost_vdpa; + VirtIONet *n; + uint64_t features; + + assert(nc->info->type =3D=3D NET_CLIENT_DRIVER_VHOST_VDPA); + + if (!v->shadow_vqs_enabled) { + return 0; + } + + n =3D VIRTIO_NET(v->dev->vdev); + features =3D v->dev->vdev->host_features; + if (features & BIT_ULL(VIRTIO_NET_F_CTRL_MAC_ADDR)) { + const struct virtio_net_ctrl_hdr ctrl =3D { + .class =3D VIRTIO_NET_CTRL_MAC, + .cmd =3D VIRTIO_NET_CTRL_MAC_ADDR_SET, + }; + uint8_t mac[6]; + const struct iovec out[] =3D { + { + .iov_base =3D (void *)&ctrl, + .iov_len =3D sizeof(ctrl), + },{ + .iov_base =3D mac, + .iov_len =3D sizeof(mac), + }, + }; + size_t out_len; + bool ok; + virtio_net_ctrl_ack state; + + ok =3D vhost_vdpa_net_cvq_map_sg(s, out, ARRAY_SIZE(out), &out_len= ); + if (unlikely(!ok)) { + return -1; + } + + memcpy(mac, n->mac, sizeof(mac)); + state =3D vhost_vdpa_net_cvq_add(s, out_len); + vhost_vdpa_cvq_unmap_buf(v, s->cvq_cmd_out_buffer); + vhost_vdpa_cvq_unmap_buf(v, s->cvq_cmd_in_buffer); + return state =3D=3D VIRTIO_NET_OK ? 0 : 1; + } + + return 0; +} + static NetClientInfo net_vhost_vdpa_cvq_info =3D { .type =3D NET_CLIENT_DRIVER_VHOST_VDPA, .size =3D sizeof(VhostVDPAState), .receive =3D vhost_vdpa_receive, + .load =3D vhost_vdpa_net_load, .cleanup =3D vhost_vdpa_cleanup, .has_vnet_hdr =3D vhost_vdpa_has_vnet_hdr, .has_ufo =3D vhost_vdpa_has_ufo, --=20 2.31.1 From nobody Sun May 19 14:32:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659463428; cv=none; d=zohomail.com; s=zohoarc; b=ZRyfJY/QHRIfQHU3LruvVdjknGvSGLmfalVXhHIJLsD9vsykvoKlnUTCTJ5IWjk+TLuIHxw5FIeeDFQm3G7aCLcqHSpksUuNyvz4ZarneUxZLvx6ioePLhYAGBaUmlK9RUcTksHteeXm+LpWN//rFhr44jNZy1dVLC340rEkWDU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659463428; h=Content-Type: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=HN2KrTqUk+gE8qWrbNX/5Aj1og/FxYzpfKmiULOoVPU=; b=dMguLjCgSu9s5Fq7DpNjKGlEdleZhUhivOpC19dHzA22bU5Cp4MLzwhIaxcSDP7tRA0jbup6o31JlfqF/D3pY8wMILb+Q7IFW8nB5TNekLo8RamXpBE1tFb1+qf/2YXO7ZW3E+ZPDYKcJBDuxSMXuYm97g9jPP6WqpZK2Btns0s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1659463428332869.7155102924308; Tue, 2 Aug 2022 11:03:48 -0700 (PDT) Received: from localhost ([::1]:43862 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIwF9-0001Kr-7x for importer@patchew.org; Tue, 02 Aug 2022 14:03:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58270) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9l-00024N-Ox for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:58:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:50388) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIw9k-0003mj-45 for qemu-devel@nongnu.org; Tue, 02 Aug 2022 13:58:13 -0400 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-287-ClIf00pZPp-emG4bVMN6bQ-1; Tue, 02 Aug 2022 13:58:07 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id ECC4F1C06ED3; Tue, 2 Aug 2022 17:58:06 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8227F492C3B; Tue, 2 Aug 2022 17:58:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659463091; 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=HN2KrTqUk+gE8qWrbNX/5Aj1og/FxYzpfKmiULOoVPU=; b=JwhkWRFLUPDpEzYzljbPPQwv+0npAuzkVmPmLXNCPZILvlkYq7JflKA0oRkG6Fi3p9TXVm 5SzYSmsXDFk1TgdtQlUxChoqJn1M9NyCYtIZBmk12p1PPyiDQ/cKOtw64mkXgo2yGHWBQk +wp4nT2YVc2gSr9NWsK/UPNFySIcNkM= X-MC-Unique: ClIf00pZPp-emG4bVMN6bQ-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Eli Cohen , Stefano Garzarella , Parav Pandit , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , Harpreet Singh Anand , "Gonglei (Arei)" , Paolo Bonzini , Eric Blake , "Michael S. Tsirkin" , Laurent Vivier , Cornelia Huck , Cindy Lu , Jason Wang , Liuxiangdong , Zhu Lingshan Subject: [PATCH v5 10/10] vdpa: Delete CVQ migration blocker Date: Tue, 2 Aug 2022 19:57:31 +0200 Message-Id: <20220802175731.312115-11-eperezma@redhat.com> In-Reply-To: <20220802175731.312115-1-eperezma@redhat.com> References: <20220802175731.312115-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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=170.10.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659463430396100001 We can restore the device state in the destination via CVQ now. Remove the migration blocker. Signed-off-by: Eugenio P=C3=A9rez --- include/hw/virtio/vhost-vdpa.h | 1 - hw/virtio/vhost-vdpa.c | 14 -------------- net/vhost-vdpa.c | 2 -- 3 files changed, 17 deletions(-) diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h index d10a89303e..1111d85643 100644 --- a/include/hw/virtio/vhost-vdpa.h +++ b/include/hw/virtio/vhost-vdpa.h @@ -35,7 +35,6 @@ typedef struct vhost_vdpa { bool shadow_vqs_enabled; /* IOVA mapping used by the Shadow Virtqueue */ VhostIOVATree *iova_tree; - Error *migration_blocker; GPtrArray *shadow_vqs; const VhostShadowVirtqueueOps *shadow_vq_ops; void *shadow_vq_ops_opaque; diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index e44c23dce5..8882077955 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -1029,13 +1029,6 @@ static bool vhost_vdpa_svqs_start(struct vhost_dev *= dev) return true; } =20 - if (v->migration_blocker) { - int r =3D migrate_add_blocker(v->migration_blocker, &err); - if (unlikely(r < 0)) { - return false; - } - } - for (i =3D 0; i < v->shadow_vqs->len; ++i) { VirtQueue *vq =3D virtio_get_queue(dev->vdev, dev->vq_index + i); VhostShadowVirtqueue *svq =3D g_ptr_array_index(v->shadow_vqs, i); @@ -1078,10 +1071,6 @@ err: vhost_svq_stop(svq); } =20 - if (v->migration_blocker) { - migrate_del_blocker(v->migration_blocker); - } - return false; } =20 @@ -1101,9 +1090,6 @@ static bool vhost_vdpa_svqs_stop(struct vhost_dev *de= v) } } =20 - if (v->migration_blocker) { - migrate_del_blocker(v->migration_blocker); - } return true; } =20 diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index d489fcd91e..f933ba53a3 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -576,8 +576,6 @@ static NetClientState *net_vhost_vdpa_init(NetClientSta= te *peer, =20 s->vhost_vdpa.shadow_vq_ops =3D &vhost_vdpa_net_svq_ops; s->vhost_vdpa.shadow_vq_ops_opaque =3D s; - error_setg(&s->vhost_vdpa.migration_blocker, - "Migration disabled: vhost-vdpa uses CVQ."); } ret =3D vhost_vdpa_add(nc, (void *)&s->vhost_vdpa, queue_pair_index, n= vqs); if (ret) { --=20 2.31.1