From mboxrd@z Thu Jan 1 00:00:00 1970 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F09DEC00140 for ; Fri, 5 Aug 2022 16:39:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238509AbiHEQjf (ORCPT ); Fri, 5 Aug 2022 12:39:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39692 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240999AbiHEQjd (ORCPT ); Fri, 5 Aug 2022 12:39:33 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A64C579ECE for ; Fri, 5 Aug 2022 09:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659717571; 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=KNhiWd04r7rMPHuTjAJzqSaarA1Q02wOkbwF9FOYaVY=; b=LvhZxErtem1Wz/UNZpNaQhyfBGtuVKKrprxsoTBm+++60pUOh65OqnoCJBxuJ3wIwvlT02 F7GKdiRBhig2clapGyB3iCvZBK6R8wquN2+KzdXNEWhxtfRL1lGm4oZc7498NT6hJs3Obu J/+C2mIIEOfm6KFY2dCuPObE7MWY6KA= 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-81-f3axiluqN5m5EsfcWB4lTw-1; Fri, 05 Aug 2022 12:39:30 -0400 X-MC-Unique: f3axiluqN5m5EsfcWB4lTw-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id AD71585A587; Fri, 5 Aug 2022 16:39:29 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.193.29]) by smtp.corp.redhat.com (Postfix) with ESMTP id 13A342166B26; Fri, 5 Aug 2022 16:39:26 +0000 (UTC) From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Stefan Hajnoczi , Eli Cohen , Zhu Lingshan , "Michael S. Tsirkin" , Gautam Dawar , Stefano Garzarella , Parav Pandit , Cindy Lu , "Gonglei (Arei)" , Jason Wang , Cornelia Huck , kvm@vger.kernel.org, Paolo Bonzini , Liuxiangdong , Laurent Vivier , Harpreet Singh Anand Subject: [PATCH v4 5/6] vdpa: Store x-svq parameter in VhostVDPAState Date: Fri, 5 Aug 2022 18:39:08 +0200 Message-Id: <20220805163909.872646-6-eperezma@redhat.com> In-Reply-To: <20220805163909.872646-1-eperezma@redhat.com> References: <20220805163909.872646-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org CVQ can be shadowed two ways: - Device has x-svq=on parameter (current way) - The device can isolate CVQ in its own vq group QEMU needs to check for the second condition dynamically, because CVQ index is not known at initialization time. Since this is dynamic, the CVQ isolation could vary with different conditions, making it possible to go from "not isolated group" to "isolated". Saving the cmdline parameter in an extra field so we never disable CVQ SVQ in case the device was started with cmdline. Signed-off-by: Eugenio PĂ©rez --- net/vhost-vdpa.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 9b932442f0..bf78b1332f 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -36,6 +36,9 @@ typedef struct VhostVDPAState { /* Control commands shadow buffers */ void *cvq_cmd_out_buffer, *cvq_cmd_in_buffer; + + /* The device always have SVQ enabled */ + bool always_svq; bool started; } VhostVDPAState; @@ -546,6 +549,7 @@ static NetClientState *net_vhost_vdpa_init(NetClientState *peer, s->vhost_vdpa.device_fd = vdpa_device_fd; s->vhost_vdpa.index = queue_pair_index; + s->always_svq = svq; s->vhost_vdpa.shadow_vqs_enabled = svq; s->vhost_vdpa.iova_tree = iova_tree; if (!is_datapath) { -- 2.31.1