From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 57E36A04B3; Mon, 10 Feb 2020 16:27:25 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 532904C7B; Mon, 10 Feb 2020 16:27:24 +0100 (CET) Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by dpdk.org (Postfix) with ESMTP id 924C54C74 for ; Mon, 10 Feb 2020 16:27:22 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 08FD0222F1; Mon, 10 Feb 2020 10:27:20 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Mon, 10 Feb 2020 10:27:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s=mesmtp; bh=KJ8HXsXcKNh+/b6ThoHHovUgejWHh7A6m9sAEiCf+Pk=; b=qWITWK3upgT8 BDMMiUYzkP8GDqy2ARsnhLjP+Sqrn1rfvD2WvIBXZ/YW/5EqslgXXdhOgy6wOzmy lbukzwACw6P3kitdgT49hEAx1UKNCuy0FgwixsFK0p9Fio1jq3WtS7cnyWAI109D UYQvarAmAanisk2uUy18int9FXl0tLI= 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-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=KJ8HXsXcKNh+/b6ThoHHovUgejWHh7A6m9sAEiCf+ Pk=; b=fluGUHskJXpTENG4B7B+VDpFkRTMzXctiLfoaRv+LIijLjvYzfk8NZowu KG3FWRTGBflUij6z0Hgos6jDdVmeYidGskufIC5SMCzVweZdKKdEtjRM/asIONht 0eIfCIyTW7DmtIWqY+r6rXC9nc4uxnV9fZuSYFavimSeAe4pzB/aaM7Dz75HTsey nGeyzSLRBiZZAC0gcRMJvHBK3CHL2fHs/mD6xBgZCyyvsR/EFq7pOS9nd0pkhfOt J3s/Wg+ZZtzJ5wK17HIHXGidCVF7BhGc9e8jkAKhkH+/wZPjr4fIEfMB8RYgDbmO If0MWHtOGDq2RsplrjEAhMAaUu1Pg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedriedugdejgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkjghfggfgtgesthfuredttddtvdenucfhrhhomhepvfhhohhmrghs ucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucffoh hmrghinhepughpughkrdhorhhgnecukfhppeejjedrudefgedrvddtfedrudekgeenucev lhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrsh esmhhonhhjrghlohhnrdhnvght X-ME-Proxy: Received: from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id B93383060A08; Mon, 10 Feb 2020 10:27:18 -0500 (EST) From: Thomas Monjalon To: Jerin Jacob , Jerin Jacob Kollanukkaran Cc: Gaetan Rivet , Pavan Nikhilesh Bhagavatula , Vamsi Krishna Attunuru , David Marchand , dpdk-dev , "Richardson, Bruce" Date: Mon, 10 Feb 2020 16:27:17 +0100 Message-ID: <2593334.B0Pyx7erxp@xps> In-Reply-To: References: <790778b3-8d6c-0ec2-79dd-7fb254f021cd@u256.net> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v7] eal: add manual probing option 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 10/02/2020 15:51, Jerin Jacob: > On Tue, Feb 4, 2020 at 9:32 PM Gaetan Rivet wrote: > > > > On 04/02/2020 16:06, Thomas Monjalon wrote: > > > 04/02/2020 13:43, Gaetan Rivet: > > >> On 04/02/2020 12:07, Thomas Monjalon wrote: > > >>> 04/02/2020 11:03, Gaetan Rivet: > > >>>> On 03/02/2020 23:21, Thomas Monjalon wrote: > > >>>>> 03/02/2020 06:16, Pavan Nikhilesh Bhagavatula: > > >>>>>> @David Marchand @thomas@monjalon.net > > >>>>>> > > >>>>>> Ping? > > >>>>>> > > >>>>>> Are there any more changes required for this patch? It's been in queue since last October. > > >>>>> > > >>>>> Sorry we have not decided whether it is a good idea or not. > > >>>>> > > >>>>> All changes related to probing are very sensitive, > > >>>>> and we know a big refactoring would be better than stacking > > >>>>> more and more options and corner cases. > > >>>>> > > >>>>> As we are busy with ABI stability stuff, we did not allocate > > >>>>> enough time to properly think about this feature. > > >>>>> Please accept our apologies, and let's consider it as > > >>>>> a high priority for 20.05 cycle. > > >>>>> > > >>>> > > >>>> Hello Thomas, > > >>>> > > >>>> This is unfortunate. I pushed Pavan to accept an alternative implementation of this functionality that was less obtrusive, to make the integration smoother. I took care to alleviate those risks from the common path. > > >>>> > > >>>> The big refactoring is needed yes, but considering the current path I'm not seeing it happen in 20.05. If that means taking this patch as-is in 20.05 for Marvell users, I'm not sure much is gained from waiting 3 months, except minimal risk avoidance. > > >>> > > >>> > > >>> Yes, life is full of bad decisions and consequences. > > >> > > >> > > >> Ah, yes, but I stand by my initial opinion, the first implementation [1] was riskier and less useful. > > >> > > >>> > > >>> I still think there is a risk in adding new user expectations, > > >>> and maintaining some code to workaround unknown issues. > > >>> > > >>> The real question here is to know why this patch? > > >>> Is it to workaround a broken driver? > > >>> Or to workaround a broken design in EAL and bus drivers? > > >> > > >> Two birds - one stone here: OVS needed a way to disable automatic probing cleanly (current workaround seen in multiple deployment is to add a dummy whitelisted device, which will be ignored by the PCI bus --> it sets the bus in whitelist mode but avoid probing anything), and as a bonus this option allows using devices that depends on other devices being probed already (LAG, representors, failsafe, etc). > > >> > > >> I'm not sure having a dependent-probe by default is good, and that would be a big change. > > >> > > >> If we are doing the genesis of this patch, the initial motivation should be asked for more details from Marvell people and David for the OVS side. > > >> > > >> [1]: First proposal: > > >> http://mails.dpdk.org/archives/dev/2019-September/144166.html > > >> My arguments: > > >> http://mails.dpdk.org/archives/dev/2019-September/144564.html > > > > > > > > > OK so there are two needs: > > > > > > 1/ Better control whitelist/blacklist mode. > > > We already know that a rework is needed here. > > > Unfortunately neither you or me had time to work on it, > > > and others who were interested disappeared. > > > > > > 2/ Associate ports with equivalent properties in applications. > > > This must be done in applications. > > > Tweaking the probe order is a hack. > > > > > > > > > > An application that want to tightly control the port init order, currently (by doing exactly like me here, hotpluging one by one the ports), would still need the bigger hack that consist in inserting a whitelist PCI devargs with a dummy address, depending on a undocumented PCI bus feature consisting in ignoring matching errors but keeping probing policy from failed devargs processing. > > > > Instead, with this patch this app can do > > > > rte_eal_manual_probe_set(1); > > rte_eal_init(); > > > > to have the same behavior and be able to hotplug ports as it sees fit. > > > > You are worried about creating user expectations about this behavior (being forced to replicate in some way the functionality during the rewrite, as I understand it?), but then you are currently forcing users to expect this workaround to exist in the PCI bus, blocking devs from touching it as it will thus break current app configurations. I've seen systemd unit file using this -w dummy flag, as well as the programmatic equivalent. Which is better, to have to rework it cutting short these configs, or to propose beforehand a deprecation path?. > > > > This rework won't happen in 20.05, nor in the medium term unless you decide to drive this change. This workaround serves three needs (PCI normalization, port congruence and port dependency) in a low-risk implementation. > > Thomas, > > What would be the resolution of this? What is your recommendation to > fix the issue as you have the concern of this patch? > > Issue: > 1) When l2fwd does the forwarding for simplicity and performance > reason it just xor the port to find the destination port to forward. > 2) If the adjacent ports are not symmetrical(example: one is 40G and > other 10G) then forwarding will drop the packets. > > So, either > a) We need to control the probing order > > b) Or Application need > 1) To track the symmetrical ports and maintain the forwarding table OR > 2) Have the command-line option to specify destination port like l3fwd. > > We can fix it in the application, but do we need to complicate l2fwd? > I am fine with that, if that is consensus. You are describing an application issue, that's why I believe it should be fixed in the application. Should we have a command line option to configure the forwarding rules in the application (2)? I think yes. Should we implement an application logic to automatically create the best forwarding rules (1)? It would be nice, but anyway, I think we need manual config (2) as a fallback. > Thoughts? If you think, there is a rework needed in eal then could you > enumerate the items for the rework. Sorry I don't have time to describe dive into EAL probing and enumerate the items to rework. The most important issues I remind are: - white/blacklist policy is a mess and should be done in a higher layer - devargs syntax should allow generic matching (thanks to class awareness and generic syntax) Starting from these 2 items, we could imagine a generic path to disable automatic probing, but I think the l2fwd logic should not rely on probing order anyway.