From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by dpdk.org (Postfix) with ESMTP id E35CD1200A for ; Wed, 24 Jan 2018 10:28:31 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 6EC1B2264F; Wed, 24 Jan 2018 04:28:31 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute1.internal (MEProxy); Wed, 24 Jan 2018 04:28:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux.org; 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=fm1; bh=kVPv1KmHHWMlqDVc2 tfxfPbC27lfaUoWKSshv/q5Sbs=; b=mrv/pSrCRb2I2ltIbPIfpvY+jfHJxkBBf 408VEOuloF1AFOC9XCIdcR42gSnuVirSJN0wJzwDbhi14Waa7jOT/qSzXmyF8dT3 LgNrXmi5jswNclDHa6U/dMiFx4uEctWk1JHkajUJbRAS/DT7xk2HSm96OtWRpimf Vy+sKMA2fefeu81Bm4Cq+Z536UTulWuaWam30muPGF0rHjNkse7lb9wYEBb4WXbk U2HDmpFet70RgKCGhZq1D8dmO9JIkEq8ohJTQodVvRMnCBlNY3Jn6qXbJ4bXfp3c /1TmmZyRIFaJ8i18RePxAW25qCmZeebCku6M8fPmGlVkM2cY7Ih2g== 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=fm1; bh=kVPv1K mHHWMlqDVc2tfxfPbC27lfaUoWKSshv/q5Sbs=; b=mFngU7sNV84LoZU22JulrU aBH/oHAJTFvzbqkiJ2v3Z/lC3bATEoT3/VdONcSm023a9SEXbNWAHrhx3RkOBrLS gruMH+v2JiahR/0zg8G1OgG3WUjM8lu8waW5dYKDXLNTc0rXNavD3IEOhIVemoNP vaXu43HAYu3sAQXc/fLPXuwa+COmJMLSL8spexgS3SaCY3D/zfa/9jVTL/Gn4aQc uC+CC7u4DeZaA7M2j9rq3mUy6cSsKZv+8v3LR+1DbM6eh9xlXBbJ0cHxKMR1/dLA bgkSgUu5j7S4CLLn5mN2GwwD2l3/zdqzRZaCh/xRud92hSKR9YCqj8jIDwjtaLPQ == X-ME-Sender: Received: from yliu-mob (unknown [115.150.27.206]) by mail.messagingengine.com (Postfix) with ESMTPA id 9EA9B7E125; Wed, 24 Jan 2018 04:28:30 -0500 (EST) Date: Wed, 24 Jan 2018 17:28:27 +0800 From: Yuanhan Liu To: Thomas Monjalon Cc: =?iso-8859-1?Q?Ga=EBtan?= Rivet , Ferruh Yigit , dev@dpdk.org Message-ID: <20180124092827.GU29540@yliu-mob> References: <1516114218-21501-1-git-send-email-yliu@fridaylinux.org> <17059484.9s6tGoQGou@xps> <20180124064339.GT29540@yliu-mob> <1680850.DZ6KxSLkSi@xps> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1680850.DZ6KxSLkSi@xps> User-Agent: Mutt/1.5.24 (2015-08-30) Subject: Re: [dpdk-dev] [PATCH] doc: document the new devargs syntax 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: Wed, 24 Jan 2018 09:28:32 -0000 On Wed, Jan 24, 2018 at 09:19:10AM +0100, Thomas Monjalon wrote: > 24/01/2018 07:43, Yuanhan Liu: > > On Tue, Jan 23, 2018 at 03:29:34PM +0100, Thomas Monjalon wrote: > > > 23/01/2018 13:46, Yuanhan Liu: > > > > On Thu, Jan 18, 2018 at 10:46:23AM +0100, Gaëtan Rivet wrote: > > > > > On Thu, Jan 18, 2018 at 09:46:29AM +0100, Thomas Monjalon wrote: > > > > > > 18/01/2018 08:35, Yuanhan Liu: > > > > > > > On Wed, Jan 17, 2018 at 12:34:08PM +0000, Ferruh Yigit wrote: > > > > > > > > So does it make sense to separate them logically? Perhaps as "device identifier" > > > > > > > > and "device args". > > > > > > > > > > > > > > Then I think it returns back to the old issue: how could we identify a > > > > > > > port when the bus id (say BDF for PCI bus) is not enough for identifying > > > > > > > a port? Such case could happen when a single NIC has 2 ports sharing > > > > > > > the same BDF. It could also happen with the VF representors that will > > > > > > > be introduced shortly. > > > > > > > > > > > > Yes, the device matching syntax must include bus category, class category > > > > > > and driver category. So any device can be identified in future. > > > > > > > > > > > > But I think Ferruh is talking about separating device matching > > > > > > (which is described in this proposal) and device settings > > > > > > (which are usually mixed in -w and --vdev options). > > > > > > I agree there are different things and may be separate. > > > > > > They could share the same syntax (bus/class/driver) but be separate > > > > > > with a semicolon: > > > > > > matching;settings > > > > > > > > > > Can you give an example? > > > > > > > > Let's take port addition in OVS-DPDK as an example. It happens in 2 > > > > steps: > > > > - port lookup (if port is already probed) > > > > - dev attachment (if lookup fails) > > > > > > > > And also let's assume we need probe a ConnectX-3 port. Note that for > > > > ConnectX-3, there are 2 ports sharing the same PCI addr. Thus, PCI > > > > BDF is not enough. And let's assume we use another extra property > > > > "port". > > > > > > > > If the proposal described in this patch is being used, the devarg > > > > would look like following: > > > > > > > > bus=pci,id=04:00.0/class=eth,port=0/driver=mlx4,mlx4_arg_A=val,... > > > > > > > > Then "bus=pci,id=04:00.0/class=eth,port=0" will be used for lookup, > > > > It means we are looking for a port with PCI BDF == 04:00.0 AND > > > > port == 0 (the first port of the 2 ports). > > > > > > > > Note that in my proposal the driver category is not intended for lookup. > > > > If any properties needed be looked in the driver category, they would > > > > probably need be elevated to the class category. > > > > > > It is not my thought. > > > I think we should be able to use bus, class and driver properties for lookup. > > > We can imagine doing a lookup on a driver specific id, which is not > > > candidate to elevation to the class category. > > > > > > > If port not found, then the whole string will be used for dev attachment. > > > > It means we are attaching a port with PCI BDF == 04.00.0 AND > > > > port == 0 (the 2nd port will not be attached). > > > > > > > > > > > > And here is how the devargs would look like if "matching;settings" is > > > > being used: > > > > > > > > bus=pci,id=04:00.0/class=eth,port=0;bus=pci,id=04:00.0/class=eth,port=0/driver=mlx4,mlx4_arg_A=val,... > > > > > > > > The part before ";" will be used for lookup and the later part will be > > > > used for attachment. It should work. It just looks redundant. > > > > > > It does not have to be redundant. > > > It can be: > > > bus=pci,id=04:00.0/class=eth,port=0;driver=mlx4,mlx4_arg1=settings1,... > > > > I knew you would make such reply :) > > Then there is a contradiction. According your suggestion, the "port=0" belongs > > to the matching section, but it also has to be used in the settings section. > > If port=0 is matched, it is already set, right? Yes. > Why it needs to be in settings? But I was talking the case it's not matched, say it's not probed and here we do hotplug. --yliu > > > Another example, setting the MAC address: > > > bus=pci,id=04:00.0/class=eth,port=0;class=eth,mac=00:11:22:33:44:55 > > > > What's the scenario it will be used? And who is going to parse it? > > It can be used on command line for whitelisting a device and let the user > change its MAC address. > The matching is parsed by the PCI driver + ethdev, here. > As mac is a property of ethdev (class=eth), this part must be parsed by ethdev.