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 67BEEA04B5; Fri, 11 Sep 2020 14:24:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E62548F96; Fri, 11 Sep 2020 14:24:02 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 4F1E9E07 for ; Fri, 11 Sep 2020 14:24:00 +0200 (CEST) IronPort-SDR: AWAjIl8GvfuObHg28pd+gh97yrHrNZAZUOtgXkFoUmxykxg/VFoFvTmkOz6SjyrhsWXy/W51gy uC0yZAVqDhbw== X-IronPort-AV: E=McAfee;i="6000,8403,9740"; a="176808090" X-IronPort-AV: E=Sophos;i="5.76,415,1592895600"; d="scan'208";a="176808090" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Sep 2020 05:23:59 -0700 IronPort-SDR: pW90bg+UaimVx4HN6TWZjb2WAHfTHGKWjI+GiCR2CiVKLRqlPGtHQivcIx++vPmRv5HZgL+W0X /YJOqjkD15IA== X-IronPort-AV: E=Sophos;i="5.76,415,1592895600"; d="scan'208";a="481304703" Received: from fyigit-mobl.ger.corp.intel.com (HELO [10.252.26.168]) ([10.252.26.168]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Sep 2020 05:23:58 -0700 To: "Zhang, Qi Z" , "Yang, Qiming" Cc: "dev@dpdk.org" References: <20200907112826.48493-1-qi.z.zhang@intel.com> <757aaeb7-caa4-2ef4-998b-6f3b4039ec36@intel.com> From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@intel.com; prefer-encrypt=mutual; keydata= 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 dYuOYKR9nbPv+2zK9pwwQ2NXbUBystaGyQ== Message-ID: <9a3618ed-c30f-217d-a043-365164e2c717@intel.com> Date: Fri, 11 Sep 2020 13:23:54 +0100 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH 00/40] ice base code update 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 9/11/2020 12:52 PM, Zhang, Qi Z wrote: > > >> -----Original Message----- >> From: Ferruh Yigit >> Sent: Friday, September 11, 2020 7:08 PM >> To: Zhang, Qi Z ; Yang, Qiming >> >> Cc: dev@dpdk.org >> Subject: Re: [dpdk-dev] [PATCH 00/40] ice base code update >> >> On 9/10/2020 4:26 AM, Zhang, Qi Z wrote: >>> >>> >>>> -----Original Message----- >>>> From: Yang, Qiming >>>> Sent: Wednesday, September 9, 2020 3:17 PM >>>> To: Zhang, Qi Z >>>> Cc: dev@dpdk.org >>>> Subject: RE: [PATCH 00/40] ice base code update >>>> >>>> >>>> >>>>> -----Original Message----- >>>>> From: Zhang, Qi Z >>>>> Sent: Monday, September 7, 2020 19:28 >>>>> To: Yang, Qiming >>>>> Cc: dev@dpdk.org; Zhang, Qi Z >>>>> Subject: [PATCH 00/40] ice base code update >>>>> >>>>> main changes: >>>>> 1. Added support for outer IP filter for GTPC. >>>>> 2. Added support for outer IP filter for GPTU control packet (no inner IP) 3. >>>>> Added support for QinQ switch filter 4. code refactor and bug fixes >>>>> >>>>> Qi Zhang (40): >>>>> net/ice/base: handle error gracefully in HW table calloc >>>>> net/ice/base: split caps discover into two functions >>>>> net/ice/base: avoid unnecessary single-member variable-length structs >>>>> net/ice/base: fix issues around move nodes >>>>> net/ice/base: cleanup stack hog >>>>> net/ice/base: clean the code wrapping >>>>> net/ice/base: cleanup misleading comment >>>>> net/ice/base: silence static analysis warning >>>>> net/ice/base: replace single-element array used for C struct hack >>>>> net/ice/base: introduce and use bitmap set API >>>>> net/ice/base: introduce and use bitmap hamming weight API >>>>> net/ice/base: add function header >>>>> net/ice/base: introduce and use for each bit iterator >>>>> net/ice/base: correct abbreviations >>>>> net/ice/base: add AQ cmd 0X0A0A LLDP fltr control >>>>> net/ice/base: add support for GTP-U type switch rule >>>>> net/ice/base: join format strings to same line >>>>> net/ice/base: introduce Tx rate limiting on port level >>>>> net/ice/base: reduce profile to recip info get from firmware >>>>> net/ice/base: refactor DCB related variables >>>>> net/ice/base: support outer IP filter for GTPC >>>>> net/ice/base: support outer IP filter for GTPU without inner IP >>>>> net/ice/base: move a function >>>>> net/ice/base: clear advanced rules in reset preparation >>>>> net/ice/base: move a function >>>>> net/ice/base: add check for failed acts allocation >>>>> net/ice/base: remove repeated words >>>>> net/ice/base: remove function ACL count query >>>>> net/ice/base: preserve NVM capabilities in safe mode >>>>> net/ice/base: misc minor ACL changes >>>>> net/ice/base: adjust rate limit profile ids runtime database >>>>> net/ice/base: enable QinQ filter for switch advanced rule >>>>> net/ice/base: create flash info structure and separate NVM version >>>>> net/ice/base: remove unused parameter >>>>> net/ice/base: minor code clean >>>>> net/ice/base: cache NVM module bank information >>>>> net/ice/base: rename function >>>>> net/ice/base: remove unnecessary conditional >>>>> net/ice/base: rename ACL priority values >>>>> net/ice/base: preserve default aggr vsi information >>>>> >> >> >> Hi Qi, >> >> I am getting build error [1], can you please check. >> >> >> [1] >> ../drivers/net/ice/ice_rxtx.c: In function ‘ice_tx_queue_start’: >> ../drivers/net/ice/ice_rxtx.c:486:15: error: array subscript 0 is outside array >> bounds of ‘struct ice_aqc_add_txqs_perq[]’ [-Werror=array-bounds] >> 486 | txq_elem.txqs[0].txq_id = rte_cpu_to_le_16(txq->reg_idx); >> | ~~~~~~~~~~~~~^~~ >> In file included from ../drivers/net/ice/base/ice_controlq.h:8, >> from ../drivers/net/ice/base/ice_type.h:52, >> from ../drivers/net/ice/base/ice_common.h:8, >> from ../drivers/net/ice/ice_ethdev.h:12, >> from ../drivers/net/ice/ice_rxtx.h:8, >> from ../drivers/net/ice/ice_rxtx.c:9: >> ../drivers/net/ice/base/ice_adminq_cmd.h:2429:31: note: while referencing >> ‘txqs’ >> 2429 | struct ice_aqc_add_txqs_perq txqs[STRUCT_HACK_VAR_LEN]; >> | ^~~~ >> ../drivers/net/ice/ice_rxtx.c:462:29: note: defined here ‘txq_elem’ >> 462 | struct ice_aqc_add_tx_qgrp txq_elem; >> | ^~~~~~~~ >> ../drivers/net/ice/ice_rxtx.c:498:54: error: array subscript 0 is outside array >> bounds of ‘struct ice_aqc_add_txqs_perq[]’ [-Werror=array-bounds] >> 498 | ice_set_ctx(hw, (uint8_t *)&tx_ctx, txq_elem.txqs[0].txq_ctx, >> | >> ~~~~~~~~~~~~~~~~^~~~~~~~ >> In file included from ../drivers/net/ice/base/ice_controlq.h:8, >> from ../drivers/net/ice/base/ice_type.h:52, >> from ../drivers/net/ice/base/ice_common.h:8, >> from ../drivers/net/ice/ice_ethdev.h:12, >> from ../drivers/net/ice/ice_rxtx.h:8, >> from ../drivers/net/ice/ice_rxtx.c:9: >> ../drivers/net/ice/base/ice_adminq_cmd.h:2429:31: note: while referencing >> ‘txqs’ >> 2429 | struct ice_aqc_add_txqs_perq txqs[STRUCT_HACK_VAR_LEN]; >> | ^~~~ >> ../drivers/net/ice/ice_rxtx.c:462:29: note: defined here ‘txq_elem’ >> 462 | struct ice_aqc_add_tx_qgrp txq_elem; >> | ^~~~~~~~ >> ../drivers/net/ice/ice_rxtx.c:514:29: error: array subscript 0 is outside array >> bounds of ‘struct ice_aqc_add_txqs_perq[]’ [-Werror=array-bounds] >> 514 | txq->q_teid = txq_elem.txqs[0].q_teid; >> | ~~~~~~~~~~~~~^~~ >> In file included from ../drivers/net/ice/base/ice_controlq.h:8, >> from ../drivers/net/ice/base/ice_type.h:52, >> from ../drivers/net/ice/base/ice_common.h:8, >> from ../drivers/net/ice/ice_ethdev.h:12, >> from ../drivers/net/ice/ice_rxtx.h:8, >> from ../drivers/net/ice/ice_rxtx.c:9: >> ../drivers/net/ice/base/ice_adminq_cmd.h:2429:31: note: while referencing >> ‘txqs’ >> 2429 | struct ice_aqc_add_txqs_perq txqs[STRUCT_HACK_VAR_LEN]; >> | ^~~~ >> ../drivers/net/ice/ice_rxtx.c:462:29: note: defined here ‘txq_elem’ >> 462 | struct ice_aqc_add_tx_qgrp txq_elem; >> | ^~~~~~~~ >> ../drivers/net/ice/ice_rxtx.c: In function ‘ice_fdir_tx_queue_start’: >> ../drivers/net/ice/ice_rxtx.c:658:15: error: array subscript 0 is outside array >> bounds of ‘struct ice_aqc_add_txqs_perq[]’ [-Werror=array-bounds] >> 658 | txq_elem.txqs[0].txq_id = rte_cpu_to_le_16(txq->reg_idx); >> | ~~~~~~~~~~~~~^~~ >> In file included from ../drivers/net/ice/base/ice_controlq.h:8, >> from ../drivers/net/ice/base/ice_type.h:52, >> from ../drivers/net/ice/base/ice_common.h:8, >> from ../drivers/net/ice/ice_ethdev.h:12, >> from ../drivers/net/ice/ice_rxtx.h:8, >> from ../drivers/net/ice/ice_rxtx.c:9: >> ../drivers/net/ice/base/ice_adminq_cmd.h:2429:31: note: while referencing >> ‘txqs’ >> 2429 | struct ice_aqc_add_txqs_perq txqs[STRUCT_HACK_VAR_LEN]; >> | ^~~~ >> ../drivers/net/ice/ice_rxtx.c:640:29: note: defined here ‘txq_elem’ >> 640 | struct ice_aqc_add_tx_qgrp txq_elem; >> | ^~~~~~~~ >> ../drivers/net/ice/ice_rxtx.c:670:54: error: array subscript 0 is outside array >> bounds of ‘struct ice_aqc_add_txqs_perq[]’ [-Werror=array-bounds] >> 670 | ice_set_ctx(hw, (uint8_t *)&tx_ctx, txq_elem.txqs[0].txq_ctx, >> | >> ~~~~~~~~~~~~~~~~^~~~~~~~ >> In file included from ../drivers/net/ice/base/ice_controlq.h:8, >> from ../drivers/net/ice/base/ice_type.h:52, >> from ../drivers/net/ice/base/ice_common.h:8, >> from ../drivers/net/ice/ice_ethdev.h:12, >> from ../drivers/net/ice/ice_rxtx.h:8, >> from ../drivers/net/ice/ice_rxtx.c:9: >> ../drivers/net/ice/base/ice_adminq_cmd.h:2429:31: note: while referencing >> ‘txqs’ >> 2429 | struct ice_aqc_add_txqs_perq txqs[STRUCT_HACK_VAR_LEN]; >> | ^~~~ >> ../drivers/net/ice/ice_rxtx.c:640:29: note: defined here ‘txq_elem’ >> 640 | struct ice_aqc_add_tx_qgrp txq_elem; >> | ^~~~~~~~ >> ../drivers/net/ice/ice_rxtx.c:686:29: error: array subscript 0 is outside array >> bounds of ‘struct ice_aqc_add_txqs_perq[]’ [-Werror=array-bounds] >> 686 | txq->q_teid = txq_elem.txqs[0].q_teid; >> | ~~~~~~~~~~~~~^~~ >> In file included from ../drivers/net/ice/base/ice_controlq.h:8, >> from ../drivers/net/ice/base/ice_type.h:52, >> from ../drivers/net/ice/base/ice_common.h:8, >> from ../drivers/net/ice/ice_ethdev.h:12, >> from ../drivers/net/ice/ice_rxtx.h:8, >> from ../drivers/net/ice/ice_rxtx.c:9: >> ../drivers/net/ice/base/ice_adminq_cmd.h:2429:31: note: while referencing >> ‘txqs’ >> 2429 | struct ice_aqc_add_txqs_perq txqs[STRUCT_HACK_VAR_LEN]; >> | ^~~~ >> ../drivers/net/ice/ice_rxtx.c:640:29: note: defined here ‘txq_elem’ >> 640 | struct ice_aqc_add_tx_qgrp txq_elem; >> | ^~~~~~~~ >> cc1: all warnings being treated as errors > > Seems this issue is only reported by a new version GCC, and it does help to detect a invalid memory access issue. > The bug has been fixed in dpdk-next-net-intel on below commit > > commit 978dddfae32764dd6ba81d615399fbc0452ecfb3 > Author: Qi Zhang > Date: Wed Aug 26 14:57:07 2020 +0800 > > net/ice/base: replace single-element array used for C struct hack > > Convert the pre-C90-extension "C struct hack" method (using a single- > element array at the end of a structure for implementing variable-length > types) to the preferred use of C99 flexible array member. > Hi Qi, Can you please send the fixed patchset as a new version to mail list first? Also there are build errors on the patch by patch build, can you address them too in next version? Thanks, ferruh