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 48D2AA0527; Fri, 24 Jul 2020 16:50:16 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 944391C02D; Fri, 24 Jul 2020 16:50:15 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 2DB4F1C02C for ; Fri, 24 Jul 2020 16:50:13 +0200 (CEST) IronPort-SDR: r3lQXHa0r1M+3N2I5wwHbYAiany560Cvf3WimD3FtnI+VlMkfc+vDOx5OkMypYkZWqruIxf1Gj uOYjMnmfYypg== X-IronPort-AV: E=McAfee;i="6000,8403,9691"; a="130793833" X-IronPort-AV: E=Sophos;i="5.75,391,1589266800"; d="scan'208";a="130793833" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jul 2020 07:50:12 -0700 IronPort-SDR: AFcdwjzATY1k8h7hvghxUs/m1gjGxdMfN6eLL7onZjCj/Wx/KB5DtvryVVsKd18Z3SKBPGxPYP sQUhkalojeNA== X-IronPort-AV: E=Sophos;i="5.75,391,1589266800"; d="scan'208";a="489231467" Received: from bricha3-mobl.ger.corp.intel.com ([10.251.87.116]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 24 Jul 2020 07:50:10 -0700 Date: Fri, 24 Jul 2020 15:50:07 +0100 From: Bruce Richardson To: Thomas Monjalon Cc: Parav Pandit , "dev@dpdk.org" , "grive@u256.net" , "ferruh.yigit@intel.com" , Raslan Darawsheh , Ori Kam , Matan Azrad , "joyce.kong@arm.com" Message-ID: <20200724145007.GC2305@bricha3-MOBL.ger.corp.intel.com> References: <20200610171728.89-2-parav@mellanox.com> <20200724110718.GB2305@bricha3-MOBL.ger.corp.intel.com> <4937496.TfPSyrM900@thomas> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4937496.TfPSyrM900@thomas> Subject: Re: [dpdk-dev] [PATCH v8 03/10] drivers: relax dependency order 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" On Fri, Jul 24, 2020 at 03:54:33PM +0200, Thomas Monjalon wrote: > 24/07/2020 15:48, Parav Pandit: > > Hi Bruce, > > > > > From: Bruce Richardson > > > Sent: Friday, July 24, 2020 4:37 PM > > > > > > On Thu, Jul 23, 2020 at 11:09:03PM +0300, Parav Pandit wrote: > > > > From: Thomas Monjalon > > > > > > > > Drivers dependencies are evaluated in the order defined per their > > > > parent directory (also called class). > > > > This strict ordering prevent from having 2 different drivers of the > > > > same class with different dependencies ordering. > > > > This problem occurs if drivers/common/mlx5 depends on drivers/bus/pci, > > > > while drivers/bus/dpaa depends on drivers/common/dpaax. > > > > Having a strict ordering between directories bus and common is too > > > > much restrictive. > > > > > > > > That's why it is made possible to have a more fine-grain directory > > > > list, adding a driver sub-directory in the list. > > > > In this case, the isolated driver must be removed from its class list, > > > > and added directly in drivers/meson.build. > > > > Also, the per-class variables must be duplicated in the isolated > > > > driver, because the call "subdir(class)" is skipped in the isolated driver case. > > > > > > > > Signed-off-by: Thomas Monjalon > > > > > > The commit log above has some strange word-wrapping, and occasionally > > > strange phrasing. I think it could be slightly reworded, perhaps as: > > > > > I updated the commit log as you suggested below along with RB, ack tag. > > Thank you. > > > > > Drivers dependencies are evaluated in the order defined per their parent > > > directory (also called class). This strict ordering prevents from us > > Is "from us" too much? The word "from" is incorrect, anyway, it should just be "prevents us". Evidently I didn't proofread my own text well enough. :-( > > > > from having pairs of drivers from two classes with different dependency > > > ordering. For example, if the mlx5 common code depends on the pci bus > > > driver, while the dpaax common code is itself a dependency of the dpaa > > > bus driver. Having a strict ordering between directories bus and common > > > is too restrictive, as processing either common drivers or bus drivers > > > first leads us to missing dependencies in this scenario. > > > > > > This patch makes it possible to have a more fine-grain directory list, > > > adding a specific driver sub-directory in the top-level drivers > > > subdirectory list. In this case, the isolated driver must also be removed > > > from its class list, and the per-class variables must be duplicated in > > > the isolated driver, because the call "subdir(class)" is skipped in the > > > isolated driver case. > > > > > > > > > Apart from that, I think this is a good idea to give us some flexibility in > > > managing driver ordering which should help other drivers too - perhaps QAT? > > > Ideally, though, I'd like if we can limit the flexible ordering to *only* common > > > code, in which case we could move the per-class variables for common to the > > > top-level to prevent duplication, and maybe even get rid of > > > common/meson.build completely. That, however, will depend on how much > > > this feature gets used and by whom. > > For now it is used only to have common/mlx5 isolated of the rest > of common drivers, as an exception. > I think it is good to keep common/meson.build > until there are more exceptions than the rest. > +1 agreed. Just suggesting possible future changes depending on how things go, and also seeding the idea that any out-of-order build processing should really be limited to the common folder. /Bruce