From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D0E3DA0560; Tue, 18 Oct 2022 09:15:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 73DDC4021D; Tue, 18 Oct 2022 09:15:04 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 8B2E840143 for ; Tue, 18 Oct 2022 09:15:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1666077302; 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=+jOzBIwb0BcjgAaaX68AxG3+6WF9Ar2VQZMP3HmKHgo=; b=TJHh8eJUTgpTm0ZU9oVKEJyvptVWnqmgcllRbOC6h9Ep8XdFICZdJIB3Au/A1X4Y+Ha2xz fkHu6hEsLbzQWV5SdvynBKX18Ces8tD85qn3qK/bufmcwinscdTRo3UOoBtUGdRtAdrlYk 7DIWD/yTJPaar5WlYEJETN02hK9ZnGU= 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-480-ZR4osCY4Nn2Sl9DIf5XOig-1; Tue, 18 Oct 2022 03:14:58 -0400 X-MC-Unique: ZR4osCY4Nn2Sl9DIf5XOig-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2711287B2AA; Tue, 18 Oct 2022 07:14:58 +0000 (UTC) Received: from [10.39.208.29] (unknown [10.39.208.29]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E3B7A2022C2B; Tue, 18 Oct 2022 07:14:56 +0000 (UTC) Message-ID: <5376e7a3-9df0-eeba-35d7-385336810db3@redhat.com> Date: Tue, 18 Oct 2022 09:14:54 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: [PATCH v7 10/12] vhost: add vdpa device type to rte vdpa device To: Andy Pei , dev@dpdk.org Cc: chenbo.xia@intel.com, rosen.xu@intel.com, wei.huang@intel.com, gang.cao@intel.com References: <1661229305-240952-2-git-send-email-andy.pei@intel.com> <1666073977-175484-1-git-send-email-andy.pei@intel.com> <1666073977-175484-11-git-send-email-andy.pei@intel.com> From: Maxime Coquelin In-Reply-To: <1666073977-175484-11-git-send-email-andy.pei@intel.com> X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 10/18/22 08:19, Andy Pei wrote: > Add vdpa_device_type to rte_vdpa_device to store device type. > Call vdpa ops get_dev_type to fill vdpa_device_type > when register vdpa device. > > Signed-off-by: Andy Pei > --- > lib/vhost/socket.c | 15 +-------------- > lib/vhost/vdpa.c | 17 +++++++++++++++++ > lib/vhost/vdpa_driver.h | 2 ++ > 3 files changed, 20 insertions(+), 14 deletions(-) > > diff --git a/lib/vhost/socket.c b/lib/vhost/socket.c > index 608ae57..f768114 100644 > --- a/lib/vhost/socket.c > +++ b/lib/vhost/socket.c > @@ -627,7 +627,6 @@ struct rte_vdpa_device * > { > struct vhost_user_socket *vsocket; > struct rte_vdpa_device *vdpa_dev; > - uint32_t vdpa_type = 0; > int ret = 0; > > pthread_mutex_lock(&vhost_user.mutex); > @@ -644,19 +643,7 @@ struct rte_vdpa_device * > goto unlock_exit; > } > > - if (vdpa_dev->ops->get_dev_type) { > - ret = vdpa_dev->ops->get_dev_type(vdpa_dev, &vdpa_type); > - if (ret) { > - VHOST_LOG_CONFIG(path, ERR, > - "failed to get vdpa dev type for socket file.\n"); > - ret = -1; > - goto unlock_exit; > - } > - } else { > - vdpa_type = RTE_VHOST_VDPA_DEVICE_TYPE_NET; > - } > - > - *type = vdpa_type; > + *type = vdpa_dev->vdpa_device_type; > > unlock_exit: > pthread_mutex_unlock(&vhost_user.mutex); > diff --git a/lib/vhost/vdpa.c b/lib/vhost/vdpa.c > index bb82857..b487f4d 100644 > --- a/lib/vhost/vdpa.c > +++ b/lib/vhost/vdpa.c > @@ -73,6 +73,8 @@ struct rte_vdpa_device * > struct rte_vdpa_dev_ops *ops) > { > struct rte_vdpa_device *dev; > + uint32_t vdpa_type = -1; > + int ret = 0; > > if (ops == NULL) > return NULL; > @@ -101,6 +103,21 @@ struct rte_vdpa_device * > > dev->device = rte_dev; > dev->ops = ops; > + > + if (ops->get_dev_type) { > + ret = ops->get_dev_type(dev, &vdpa_type); > + if (ret) { > + VHOST_LOG_CONFIG(rte_dev->name, ERR, > + "Failed to get vdpa dev type.\n"); > + ret = -1; > + goto out_unlock; > + } > + } else { > + /** by default, we assume vdpa device is a net device */ > + vdpa_type = RTE_VHOST_VDPA_DEVICE_TYPE_NET; > + } > + dev->vdpa_device_type = vdpa_type; > + > TAILQ_INSERT_TAIL(&vdpa_device_list, dev, next); > out_unlock: > rte_spinlock_unlock(&vdpa_device_list_lock); > diff --git a/lib/vhost/vdpa_driver.h b/lib/vhost/vdpa_driver.h > index 8b88a53..c4ec222 100644 > --- a/lib/vhost/vdpa_driver.h > +++ b/lib/vhost/vdpa_driver.h > @@ -92,6 +92,8 @@ struct rte_vdpa_device { > struct rte_device *device; > /** vdpa device operations */ > struct rte_vdpa_dev_ops *ops; > + /** vdpa device type: net, blk... */ > + uint32_t vdpa_device_type; I would name it simply "type". It is part of rte_vdpa_device struct, no need to duplicate information. Doing that, you can use it directly in later patches using 'vdpa_dev->type'. Maxime > }; > > /**