From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 55C33A05D3 for ; Fri, 24 May 2019 20:08:50 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 143A914EC; Fri, 24 May 2019 20:08:49 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 842701D7 for ; Fri, 24 May 2019 20:08:47 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 May 2019 11:08:45 -0700 X-ExtLoop1: 1 Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by fmsmga001.fm.intel.com with ESMTP; 24 May 2019 11:08:45 -0700 Received: from orsmsx112.amr.corp.intel.com ([169.254.3.79]) by ORSMSX110.amr.corp.intel.com ([169.254.10.7]) with mapi id 14.03.0415.000; Fri, 24 May 2019 11:08:45 -0700 From: "Ergin, Mesut A" To: "Zhang, Qi Z" , "Xing, Beilei" CC: "dev@dpdk.org" Thread-Topic: [PATCH 3/3] net/i40e: fix inadvertent override of vector RX allowance Thread-Index: AQHVC5/V/P93M9SWj0u3LqZdFjBAbaZ3lZyAgAF8XSCAAP/pAIAAjCNQ Date: Fri, 24 May 2019 18:08:45 +0000 Message-ID: <3615B82CA151CF42A86EDDD9846A8B38C7A8E453@ORSMSX112.amr.corp.intel.com> References: <1557980885-183777-1-git-send-email-mesut.a.ergin@intel.com> <1557980885-183777-4-git-send-email-mesut.a.ergin@intel.com> <039ED4275CED7440929022BC67E7061153385EC0@SHSMSX103.ccr.corp.intel.com> <3615B82CA151CF42A86EDDD9846A8B38C7A8C3E5@ORSMSX112.amr.corp.intel.com> <039ED4275CED7440929022BC67E7061153386A98@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <039ED4275CED7440929022BC67E7061153386A98@SHSMSX103.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmYwMjViZjktNzEyNS00MGExLTkxYTEtYmJmZGE1ZTNjYWJkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVFYzanh6WFkyRTY5bmV5QVh3WGVnQVFwZGdFTGpFSml1a0c3WGJHOUdTZWRrMnJ6XC9tbEp5T25PalNLZWFJMjUifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.22.254.139] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 3/3] net/i40e: fix inadvertent override of vector RX allowance 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" Hi, > > > > i40e_rx_vec_dev_conf_condition_check_default(struct rte_eth_dev *de= v) > > > > if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_EXTEND) > > > > return -1; > > > > > > > > + /* Should not override if vector was already disallowed */ > > > > > > It is possible a device be reconfigured between dev_stop/dev_start, > > > vector mode may fit for the new configure, so the old rx_vec_allowd > > > should be ignored, > > > > > > > i40e_dev_configure would reset rx_vec_allowed already. Am I missing ano= ther > > reconfiguration path? >=20 > Look at below scenario, >=20 > 1. dev_configure (rx_vec_allowed is reset to true) > 2. queue_setup (the ring size is not power of 2) > 3. dev_start (vector will not be selected due to ring size, rx_vec_allowe= d set to > false) > 4. dev_stop > 5. queue_setup (this time, with power of 2 ring size) > 6. dev_start (assume vector path should be selected, and rx_vec_allowed s= hould > be overwrite to true, but your patch will prevent it) >=20 > Also, I may not get the point of the gap you observed, would you share mo= re > detail scenario? >=20 > Regards > Qi It seems like queue setup should reset vector_allowed flag, too. Because=20 i40e_dev_rx_queue_setup_runtime is already doing it, though covering only half of the state space (i.e. device already started). Do you think this patch plus that would be a preferred approach? >=20 > > > > Mesut > > > > > Regards > > > Qi > > > > > > > + if (!ad->rx_vec_allowed) > > > > + return -1; > > > > + > > > > /** > > > > * Vector mode is allowed only when number of Rx queue > > > > * descriptor is power of 2. > > > > -- > > > > 2.7.4