From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by dpdk.org (Postfix) with ESMTP id 18B011B440 for ; Thu, 27 Sep 2018 13:39:50 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 5F7B2219FE; Thu, 27 Sep 2018 07:39:49 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Thu, 27 Sep 2018 07:39:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=mesmtp; bh=SA48/7YcVBUEG3mXwiinQGF6Bp 9166M4/FeXjGIlNWI=; b=HM27r5a4PGtuXqNYbxBj2wY4ROL+UhVcI03Trs37ex t1AOIYBxu85dg6yAP0syLiahIpHEolotTnOGgeKfq9TAI1Xu4AHDU37+tx0sCVb/ 1OH3sIvfKFIZh4uMsDJo0xup78qqXQmeB4MMm+YfIOWMGO+H5JpTo8OVWHaJMpIn 4= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=SA48/7 YcVBUEG3mXwiinQGF6Bp9166M4/FeXjGIlNWI=; b=s2p57QzO5U3lZxeGaSxvAj uLOAxQJvCb1jhx/eyYuMzXZ63AscE7+2ENSswtwwf/yDaDaabBi/1DHvwwrBXgjK 90GnHL3hOgIa2ZPLPCYm94hjTXArDzgvu29/1u8mEdVKWjsSYPHyIOmefOChL/ag 7USzWH9qfV5goyoBLF9DilFkUrKEzYfdEziEwRek2GVc18kzOlco2Qrv/PIS4VXO dLKD6zxvLaY/N8IzAkZluK4fA6FSTdh+DdL9HfpVpA3RA/WxtepWgoXNFPGgP7TK S8Vlk++Nr1dmzRZU8N8uSnVZGXKstuWNNIrmi14AQm+dItzIt7+YS/uiYHiYtqPQ == X-ME-Proxy: X-ME-Sender: Received: from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 4E045E47CA; Thu, 27 Sep 2018 07:39:48 -0400 (EDT) From: Thomas Monjalon To: Hideyuki Yamashita Cc: dev@dpdk.org, Gaetan Rivet Date: Thu, 27 Sep 2018 13:39:47 +0200 Message-ID: <3832325.ptN2KYLa6n@xps> In-Reply-To: <201809271040.w8RAegUP030722@ccmail04.silk.ntt-tx.co.jp> References: <201809270138.w8R1cJHm000890@ccmail04.silk.ntt-tx.co.jp> <1671413.72NatgAg1l@xps> <201809271040.w8RAegUP030722@ccmail04.silk.ntt-tx.co.jp> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] How to replace rte_eth_dev_attach with rte_eal_hotplug_add X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Sep 2018 11:39:50 -0000 27/09/2018 12:40, Hideyuki Yamashita: > Dear Thomas, > > Thansk for your answer. > Please see inline. > > > 27/09/2018 03:38, Hideyuki Yamashita: > > > Dear Thomas, > > > > > > Thanks for your answer. > > > It took me a little time to digest answer. > > > Please see inline. > > > > > > > > > > 21/09/2018 09:19, Hideyuki Yamashita: > > > > > Dear Gaetan and Thomas, > > > > > > > > > > Thanks for your answer. > > > > > Please see inline. > > > > > > > > > > > 20/09/2018 11:09, Ga?an Rivet: > > > > > > > On Thu, Sep 20, 2018 at 05:46:37PM +0900, Hideyuki Yamashita wrote: > > > > > > > > Hello, > > > > > > > > > > > > > > > > From dpdk 18.08 release rte_eth_dev_attach and > > > > > > > > rte_eth_dev_detach becom deprecated API and > > > > > > > > it is recommended to replace with rte_eal_hotplug_add > > > > > > > > and rte_eal_hotplug_remove. > > > > > > > > > > > > > > > > My program uses above mentioned deprecated APIs > > > > > > > > and have to replace those. > > > > > > > > Note that my program uses attach to attach vhost, pcap pmd. > > > > > > > > > > > > > > > > My question is whether it is correct to replace those as following: > > > > > > > > find rte_eth_dev_attach function in rte_ethdev.c and > > > > > > > > migrate those content into my program. > > > > > > > > > > > > > > > > e.g. > > > > > > > > lib/librte_ethdev/rte_ethdev.c line 643-686 for attach > > > > > > > > lib/librte_ethdev/rte_ethdev.c line 690-720 for detach > > > > > > > > > > > > > > > > Your advice/guidance are much appreciated. > > > > > > > > Thanks! > > > > > > > > > > > > > > Hello Hideyuki, > > > > > > > > > > > > > > You could use this code for guidance, while leaving the ethdev > > > > > > > specificities such as verifying the eth_dev_count_total(). The hotplug > > > > > > > function would already return an error if the PMD was not able to create > > > > > > > the necessary devices. > > > > > > > > > > > > > > The main issue might be to find the port_id of your new port. > > > > > > > You won't be able to use eth_dev_last_created_port, so you would have to > > > > > > > iterate over the ethdev using RTE_ETH_FOREACH_DEV and find the one > > > > > > > matching your parameters (you might for example match the rte_device > > > > > > > name with the name you used in hotplug_add, as there is no standard > > > > > > > naming scheme at the ethdev level). > > > > > First of all, thank for your answering to my question. > > > > > But I have questions. > > > > > (Sorry, I have poor knowledge about dpdk and have many basic questions) > > > > > > > > > > Q1. > > > > > Why eth_dev_last_created_port can not be used? > > > > > When I look into rte_eth_dev_atthach in 18.08, it calls > > > > > > > > > > *port_id = eth_dev_last_created_port; > > > > > > > > > > at the end of the function. > > > > > > > > You can have a race condition. > > > Please elaborate me a bit more. > > > > > > Is it correct understanding that race condition > > > includes > > > - read information before port is available > > > - other device may be plugged (or unplugged) > > > and so using "eth_dev_last_created_port" is > > > NOT reliable? > > > > I am thinking about the second one only. > > If we assume there is only one DPDK application > inside the host and within the application, only one thread > handles attach/detach of devices, then is it ok to use > > > > > *port_id = eth_dev_last_created_port; > because there seems no possiblity race condition > takes place? If you are never probing a new port outside of this thread, I guess it's OK. Take care of not attaching from the interrupt thread too!