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 53847A0A0A; Fri, 26 Mar 2021 16:37:30 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C4E42140F05; Fri, 26 Mar 2021 16:37:29 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id CFC2140685 for ; Fri, 26 Mar 2021 16:37:27 +0100 (CET) IronPort-SDR: MBsg4uu5W0cRE0N+waWM2P5Pp2vcrcUp2STEku9vUyzymriPjNO1dDYhqpewefokekHdqJpvqz m5MOTtL/aEIg== X-IronPort-AV: E=McAfee;i="6000,8403,9935"; a="190610244" X-IronPort-AV: E=Sophos;i="5.81,280,1610438400"; d="scan'208";a="190610244" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Mar 2021 08:37:26 -0700 IronPort-SDR: v1/1+kLy2E7/2y7Fm7vIgrzd7lgG6RF1TxbbUXFLmhZRP1IXnG6BPeKqW18G3Dy5Xt1hFylwxM 8trlmpa3CHtQ== X-IronPort-AV: E=Sophos;i="5.81,280,1610438400"; d="scan'208";a="375520787" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.213.231.99]) ([10.213.231.99]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Mar 2021 08:37:23 -0700 To: Thomas Monjalon Cc: Andrew Rybchenko , dev@dpdk.org, Rosen Xu , Hemant Agrawal , Sachin Saxena , Jingjing Wu , Beilei Xing , Qiming Yang , Qi Zhang , Jeff Guo , Haiyue Wang References: <20210311221742.3750589-1-thomas@monjalon.net> <325e1d27-3729-0768-fc0d-ef89c1db9cf5@oktetlabs.ru> <27e1324b-886a-7e26-3215-08a10daf679e@intel.com> <272955377.2llAV7lm0X@thomas> From: Ferruh Yigit X-User: ferruhy Message-ID: <4d61a941-5262-7da3-bed8-12cc360e5f59@intel.com> Date: Fri, 26 Mar 2021 15:37:19 +0000 MIME-Version: 1.0 In-Reply-To: <272955377.2llAV7lm0X@thomas> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH v3 2/2] drivers/net: remove explicit include of legacy filtering 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 Sender: "dev" On 3/25/2021 10:20 AM, Thomas Monjalon wrote: > 25/03/2021 11:00, Ferruh Yigit: >> On 3/25/2021 5:53 AM, Andrew Rybchenko wrote: >>> On 3/24/21 11:00 PM, Thomas Monjalon wrote: >>>> 24/03/2021 19:08, Ferruh Yigit: >>>>> On 3/21/2021 9:00 AM, Thomas Monjalon wrote: >>>>>> The header file rte_eth_ctrl.h should not be needed because >>>>>> this legacy filtering API is completely replaced with the rte_flow API. >>>>>> However some definitions from this file are still used by some drivers, >>>>>> but such usage is already covered by an implicit include via rte_ethdev.h. >>>>>> >>>>>> Signed-off-by: Thomas Monjalon >>>>>> Acked-by: Rosen Xu >>>>>> Acked-by: Hemant Agrawal >>>>>> --- >>>>>> drivers/net/dpaa2/dpaa2_ptp.c | 1 - >>>>>> drivers/net/iavf/iavf_hash.c | 1 - >>>>>> drivers/net/ice/ice_acl_filter.c | 1 - >>>>>> drivers/net/ice/ice_hash.c | 1 - >>>>>> drivers/net/ice/ice_switch_filter.c | 1 - >>>>>> drivers/net/igc/igc_filter.h | 1 - >>>>>> drivers/net/ipn3ke/ipn3ke_flow.c | 1 - >>>>> >>>>> Although this will work, if the above drives are using the defines from the >>>>> header file, isn't it better to include it explicitly? >>>>> >>>>> What is the benefit of including the header implicitly? >>>> >>>> The benefit is to progressively remove rte_eth_ctrl.h. >>>> I want it to disappear. >>>> >>> >>> +1 >>> >> >> This is just hiding its usage, the patch is not making it less used as a step >> forward to remove it. > > Yes you're right. The only step forward is esthetic: > hiding something which should be removed. > And maybe some of these files don't need the include at all. > >> But anyway I guess it doesn't worth spending more time to discuss it ... > > Feel free to reject if you feel it is not a good step. > What do you think doing exact opposite, remove "#include " from 'rte_ethdev.h', and include 'rte_eth_ctrl.h' explicitly where ever it is required, this can make more clear what components use the 'rte_eth_ctrl.h' and why, which may help clearing them to remove the header. Plus it highlights if a new PMD wants to use the header, we can catch it easier. When I tried above approach, it highlighted that not only drivers, libraries also using this header, 'librte_ehtdev' & 'librte_flow_classify'. And for 'ethdev', the structs defined in the 'rte_eth_ctrl.h' are part of public structs, so it is hard to remove them. Some PMD specific APIs also needs 'rte_eth_ctrl.h' header, but that is hidden because of the implicit include, but again some structs in the 'rte_eth_ctrl.h' are part of public APIs (although they are experimental). Also, it turned out that same required headers in the drivers are hidden because of this implicit include in 'rte_ethdev.h', I will send a fix for it soon.