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 0088AA04B4; Tue, 19 Nov 2019 07:03:50 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 97B119E4; Tue, 19 Nov 2019 07:03:49 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id BECEDA3 for ; Tue, 19 Nov 2019 07:03:47 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Nov 2019 22:03:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,322,1569308400"; d="scan'208";a="215459635" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga001.fm.intel.com with ESMTP; 18 Nov 2019 22:03:46 -0800 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 18 Nov 2019 22:03:45 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 18 Nov 2019 22:03:45 -0800 Received: from shsmsx105.ccr.corp.intel.com ([169.254.11.225]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.127]) with mapi id 14.03.0439.000; Tue, 19 Nov 2019 14:03:43 +0800 From: "Zhang, Qi Z" To: "Ye, Xiaolong" CC: "Yang, Qiming" , "Cao, Yahui" , "Xing, Beilei" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v3] net/ice: add flow mark hint support Thread-Index: AQHVnajFgvb8BJWbfUOve3Lhkypic6eRebWAgACI4QA= Date: Tue, 19 Nov 2019 06:03:42 +0000 Message-ID: <039ED4275CED7440929022BC67E7061153DCD288@SHSMSX105.ccr.corp.intel.com> References: <20191118004325.29601-1-qi.z.zhang@intel.com> <20191119055247.GL69793@intel.com> In-Reply-To: <20191119055247.GL69793@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzhmYmRiN2UtNDk2OS00MDBkLWI4ZWQtZWJkZDcwOGM5YWM1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiTmo5UlpkN2tXYzZOSUNQQ2tUVGdPdHpxYXZGeWVSTnptZngrbEpsZGNDTjdzVlg3QzFxZDhLR2pXUCtTdFwvUjIifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3] net/ice: add flow mark hint support 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" > -----Original Message----- > From: Ye, Xiaolong > Sent: Tuesday, November 19, 2019 1:53 PM > To: Zhang, Qi Z > Cc: Yang, Qiming ; Cao, Yahui > ; Xing, Beilei ; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v3] net/ice: add flow mark hint support >=20 > On 11/18, Qi Zhang wrote: > >Since not all data paths support flow mark, the driver need >=20 > s/need/needs >=20 > >a hint from application to select the correct data path if flow mark is > >required. The patch introduce a devarg >=20 > s/introduce/introduces >=20 > >"flow-mark-support" as a workaround solution, since a standard way is > >still ongoing. > > > >Signed-off-by: Qi Zhang > >--- > > > >v3: > >- add "experimental notification" in ice.rst > > > >v2: > >- fix typo > > > > doc/guides/nics/ice.rst | 12 ++++++++++++ > > drivers/net/ice/ice_ethdev.c | 11 ++++++++++- > > drivers/net/ice/ice_ethdev.h | 1 + > > drivers/net/ice/ice_rxtx_vec_common.h | 5 +++++ > > 4 files changed, 28 insertions(+), 1 deletion(-) > > > >diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst index > >1a426438d..d1b80c2fa 100644 > >--- a/doc/guides/nics/ice.rst > >+++ b/doc/guides/nics/ice.rst > >@@ -80,6 +80,18 @@ Runtime Config Options > > > > -w 80:00.0,pipeline-mode-support=3D1 > > > >+- ``Flow Mark Support`` (default ``0``) > >+ > >+ This is a hint to the driver to select the data path that support > >+ flow mark extraction >=20 > s/support/supports >=20 > >+ by default. > >+ NOTE: This is an experimental devarg, it will be removed when any of > >+ below conditions is ready. > >+ 1) all data path support flow mark (currently vPMD does not) >=20 > s/path/paths >=20 > >+ 2) a new offload like RTE_DEV_RX_OFFLOAD_FLOW_MARK be introduced > as a standard way to hint. > >+ Example:: > >+ > >+ -w 80:00.0,flow-mark-support=3D1 > >+ > > - ``Protocol extraction for per queue`` > > > > Configure the RX queues to do protocol extraction into mbuf for > >protocol diff --git a/drivers/net/ice/ice_ethdev.c > >b/drivers/net/ice/ice_ethdev.c index abf00d404..9f2cb2f40 100644 > >--- a/drivers/net/ice/ice_ethdev.c > >+++ b/drivers/net/ice/ice_ethdev.c > >@@ -23,11 +23,13 @@ > > /* devargs */ > > #define ICE_SAFE_MODE_SUPPORT_ARG "safe-mode-support" > > #define ICE_PIPELINE_MODE_SUPPORT_ARG "pipeline-mode-support" > >+#define ICE_FLOW_MARK_SUPPORT_ARG "flow-mark-support" > > #define ICE_PROTO_XTR_ARG "proto_xtr" > > > > static const char * const ice_valid_args[] =3D { > > ICE_SAFE_MODE_SUPPORT_ARG, > > ICE_PIPELINE_MODE_SUPPORT_ARG, > >+ ICE_FLOW_MARK_SUPPORT_ARG, > > ICE_PROTO_XTR_ARG, > > NULL > > }; > >@@ -1987,6 +1989,12 @@ static int ice_parse_devargs(struct rte_eth_dev > >*dev) > > > > ret =3D rte_kvargs_process(kvlist, ICE_PIPELINE_MODE_SUPPORT_ARG, > > &parse_bool, &ad->devargs.pipe_mode_support); > >+ if (ret) > >+ goto bail; > >+ > >+ ret =3D rte_kvargs_process(kvlist, ICE_FLOW_MARK_SUPPORT_ARG, > >+ &parse_bool, &ad->devargs.flow_mark_support); >=20 > Do we need error handling here? >=20 > >+ printf("flow_mark =3D %d\n", ad->devargs.flow_mark_support); >=20 > Use PMD_INIT_LOG instead, and in order to provide more informative > message, what about we directly say "flow_mark is 0, vector path won't be > selected." or something similar according to the value of flow_makr_suppo= rt. >=20 This is a mistake forgot to remove the debug code. Thanks Qi > > > > bail: > > rte_kvargs_free(kvlist); > >@@ -4571,7 +4579,8 @@ RTE_PMD_REGISTER_KMOD_DEP(net_ice, "* > igb_uio | > >uio_pci_generic | vfio-pci"); RTE_PMD_REGISTER_PARAM_STRING(net_ice, > > ICE_PROTO_XTR_ARG > "=3D[queue:]" > > ICE_SAFE_MODE_SUPPORT_ARG "=3D<0|1>" > >- ICE_PIPELINE_MODE_SUPPORT_ARG "=3D<0|1>"); > >+ ICE_PIPELINE_MODE_SUPPORT_ARG "=3D<0|1>" > >+ ICE_FLOW_MARK_SUPPORT_ARG "=3D<0|1>"); > > > > RTE_INIT(ice_init_log) > > { > >diff --git a/drivers/net/ice/ice_ethdev.h > >b/drivers/net/ice/ice_ethdev.h index 4a0d37b32..4d35339a7 100644 > >--- a/drivers/net/ice/ice_ethdev.h > >+++ b/drivers/net/ice/ice_ethdev.h > >@@ -391,6 +391,7 @@ struct ice_devargs { > > int safe_mode_support; > > uint8_t proto_xtr_dflt; > > int pipe_mode_support; > >+ int flow_mark_support; > > uint8_t proto_xtr[ICE_MAX_QUEUE_NUM]; }; > > > >diff --git a/drivers/net/ice/ice_rxtx_vec_common.h > >b/drivers/net/ice/ice_rxtx_vec_common.h > >index 080ca4175..086428898 100644 > >--- a/drivers/net/ice/ice_rxtx_vec_common.h > >+++ b/drivers/net/ice/ice_rxtx_vec_common.h > >@@ -268,6 +268,11 @@ ice_rx_vec_dev_check_default(struct rte_eth_dev > >*dev) { > > int i; > > struct ice_rx_queue *rxq; > >+ struct ice_adapter *ad =3D > >+ ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); > >+ > >+ if (ad->devargs.flow_mark_support) >=20 > Or we can add hint info here. >=20 > Thanks, > Xiaolong >=20 > >+ return -1; > > > > for (i =3D 0; i < dev->data->nb_rx_queues; i++) { > > rxq =3D dev->data->rx_queues[i]; > >-- > >2.13.6 > >