Message ID | 20190926114818.91063-1-haiyue.wang@intel.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7A2B54C90; Thu, 26 Sep 2019 13:53:54 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id E7AE22D13 for <dev@dpdk.org>; Thu, 26 Sep 2019 13:53:52 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Sep 2019 04:53:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,551,1559545200"; d="scan'208";a="389581505" Received: from npg-dpdk-haiyue-1.sh.intel.com ([10.67.119.153]) by fmsmga005.fm.intel.com with ESMTP; 26 Sep 2019 04:53:50 -0700 From: Haiyue Wang <haiyue.wang@intel.com> To: dev@dpdk.org, ferruh.yigit@intel.com, xiaolong.ye@intel.com Cc: ray.kinsella@intel.com, bernard.iremonger@intel.com, chenmin.sun@intel.com, Haiyue Wang <haiyue.wang@intel.com> Date: Thu, 26 Sep 2019 19:48:14 +0800 Message-Id: <20190926114818.91063-1-haiyue.wang@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [PATCH v1 0/4] get Rx/Tx packet burst mode information X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series | get Rx/Tx packet burst mode information | |
Message
Wang, Haiyue
Sept. 26, 2019, 11:48 a.m. UTC
RFCv3 -> v1: https://patchwork.dpdk.org/patch/59103/ https://patchwork.dpdk.org/patch/59104/ https://patchwork.dpdk.org/patch/59105/ https://patchwork.dpdk.org/patch/59106/ 1). Use the function 'rte_bsf64' to iterate the options for getting the name. Haiyue Wang (4): ethdev: add the API for getting burst mode information net/i40e: support to get the Rx/Tx burst mode net/ice: support to get the Rx/Tx burst mode app/testpmd: show the Rx/Tx burst mode description app/test-pmd/config.c | 29 +++++++++ doc/guides/rel_notes/release_19_11.rst | 9 +++ drivers/net/i40e/i40e_ethdev.c | 2 + drivers/net/i40e/i40e_ethdev.h | 4 ++ drivers/net/i40e/i40e_rxtx.c | 72 +++++++++++++++++++++ drivers/net/ice/ice_ethdev.c | 2 + drivers/net/ice/ice_rxtx.c | 54 ++++++++++++++++ drivers/net/ice/ice_rxtx.h | 4 ++ lib/librte_ethdev/rte_ethdev.c | 75 ++++++++++++++++++++++ lib/librte_ethdev/rte_ethdev.h | 82 ++++++++++++++++++++++++ lib/librte_ethdev/rte_ethdev_core.h | 5 ++ lib/librte_ethdev/rte_ethdev_version.map | 5 ++ 12 files changed, 343 insertions(+)
Comments
On Thu, 26 Sep 2019 19:48:14 +0800 Haiyue Wang <haiyue.wang@intel.com> wrote: > RFCv3 -> v1: > https://patchwork.dpdk.org/patch/59103/ > https://patchwork.dpdk.org/patch/59104/ > https://patchwork.dpdk.org/patch/59105/ > https://patchwork.dpdk.org/patch/59106/ > 1). Use the function 'rte_bsf64' to iterate the options for > getting the name. > > Haiyue Wang (4): > ethdev: add the API for getting burst mode information > net/i40e: support to get the Rx/Tx burst mode > net/ice: support to get the Rx/Tx burst mode > app/testpmd: show the Rx/Tx burst mode description > > app/test-pmd/config.c | 29 +++++++++ > doc/guides/rel_notes/release_19_11.rst | 9 +++ > drivers/net/i40e/i40e_ethdev.c | 2 + > drivers/net/i40e/i40e_ethdev.h | 4 ++ > drivers/net/i40e/i40e_rxtx.c | 72 +++++++++++++++++++++ > drivers/net/ice/ice_ethdev.c | 2 + > drivers/net/ice/ice_rxtx.c | 54 ++++++++++++++++ > drivers/net/ice/ice_rxtx.h | 4 ++ > lib/librte_ethdev/rte_ethdev.c | 75 ++++++++++++++++++++++ > lib/librte_ethdev/rte_ethdev.h | 82 ++++++++++++++++++++++++ > lib/librte_ethdev/rte_ethdev_core.h | 5 ++ > lib/librte_ethdev/rte_ethdev_version.map | 5 ++ > 12 files changed, 343 insertions(+) > A couple of meta comments: 1) Could this be part of dev_info_get somehow? 2) Why should application care? Is this just a test hook?
Hi Stephen, > -----Original Message----- > From: Stephen Hemminger [mailto:stephen@networkplumber.org] > Sent: Thursday, September 26, 2019 23:57 > To: Wang, Haiyue <haiyue.wang@intel.com> > Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>; Ye, Xiaolong <xiaolong.ye@intel.com>; > Kinsella, Ray <ray.kinsella@intel.com>; Iremonger, Bernard <bernard.iremonger@intel.com>; Sun, Chenmin > <chenmin.sun@intel.com> > Subject: Re: [dpdk-dev] [PATCH v1 0/4] get Rx/Tx packet burst mode information > > On Thu, 26 Sep 2019 19:48:14 +0800 > Haiyue Wang <haiyue.wang@intel.com> wrote: > > > RFCv3 -> v1: > > https://patchwork.dpdk.org/patch/59103/ > > https://patchwork.dpdk.org/patch/59104/ > > https://patchwork.dpdk.org/patch/59105/ > > https://patchwork.dpdk.org/patch/59106/ > > 1). Use the function 'rte_bsf64' to iterate the options for > > getting the name. > > > > Haiyue Wang (4): > > ethdev: add the API for getting burst mode information > > net/i40e: support to get the Rx/Tx burst mode > > net/ice: support to get the Rx/Tx burst mode > > app/testpmd: show the Rx/Tx burst mode description > > > > app/test-pmd/config.c | 29 +++++++++ > > doc/guides/rel_notes/release_19_11.rst | 9 +++ > > drivers/net/i40e/i40e_ethdev.c | 2 + > > drivers/net/i40e/i40e_ethdev.h | 4 ++ > > drivers/net/i40e/i40e_rxtx.c | 72 +++++++++++++++++++++ > > drivers/net/ice/ice_ethdev.c | 2 + > > drivers/net/ice/ice_rxtx.c | 54 ++++++++++++++++ > > drivers/net/ice/ice_rxtx.h | 4 ++ > > lib/librte_ethdev/rte_ethdev.c | 75 ++++++++++++++++++++++ > > lib/librte_ethdev/rte_ethdev.h | 82 ++++++++++++++++++++++++ > > lib/librte_ethdev/rte_ethdev_core.h | 5 ++ > > lib/librte_ethdev/rte_ethdev_version.map | 5 ++ > > 12 files changed, 343 insertions(+) > > > > A couple of meta comments: > 1) Could this be part of dev_info_get somehow? > https://patchwork.dpdk.org/patch/57624/ 'Think of a better way that doesn't break ABI.' ;-) > 2) Why should application care? Is this just a test hook? https://patches.dpdk.org/cover/57623/ This is from FD.io VPP's bug, and finally, we come out this API for application accessing the burst mode information. It can be used as a simple trace or something like performance analysis like why slow ? Not in vector, anyway, application can get this burst mode information now, not just open PMD debug log level.
On Thu, 26 Sep 2019 16:36:09 +0000 "Wang, Haiyue" <haiyue.wang@intel.com> wrote: > Hi Stephen, > > > -----Original Message----- > > From: Stephen Hemminger [mailto:stephen@networkplumber.org] > > Sent: Thursday, September 26, 2019 23:57 > > To: Wang, Haiyue <haiyue.wang@intel.com> > > Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>; Ye, Xiaolong <xiaolong.ye@intel.com>; > > Kinsella, Ray <ray.kinsella@intel.com>; Iremonger, Bernard <bernard.iremonger@intel.com>; Sun, Chenmin > > <chenmin.sun@intel.com> > > Subject: Re: [dpdk-dev] [PATCH v1 0/4] get Rx/Tx packet burst mode information > > > > On Thu, 26 Sep 2019 19:48:14 +0800 > > Haiyue Wang <haiyue.wang@intel.com> wrote: > > > > > RFCv3 -> v1: > > > https://patchwork.dpdk.org/patch/59103/ > > > https://patchwork.dpdk.org/patch/59104/ > > > https://patchwork.dpdk.org/patch/59105/ > > > https://patchwork.dpdk.org/patch/59106/ > > > 1). Use the function 'rte_bsf64' to iterate the options for > > > getting the name. > > > > > > Haiyue Wang (4): > > > ethdev: add the API for getting burst mode information > > > net/i40e: support to get the Rx/Tx burst mode > > > net/ice: support to get the Rx/Tx burst mode > > > app/testpmd: show the Rx/Tx burst mode description > > > > > > app/test-pmd/config.c | 29 +++++++++ > > > doc/guides/rel_notes/release_19_11.rst | 9 +++ > > > drivers/net/i40e/i40e_ethdev.c | 2 + > > > drivers/net/i40e/i40e_ethdev.h | 4 ++ > > > drivers/net/i40e/i40e_rxtx.c | 72 +++++++++++++++++++++ > > > drivers/net/ice/ice_ethdev.c | 2 + > > > drivers/net/ice/ice_rxtx.c | 54 ++++++++++++++++ > > > drivers/net/ice/ice_rxtx.h | 4 ++ > > > lib/librte_ethdev/rte_ethdev.c | 75 ++++++++++++++++++++++ > > > lib/librte_ethdev/rte_ethdev.h | 82 ++++++++++++++++++++++++ > > > lib/librte_ethdev/rte_ethdev_core.h | 5 ++ > > > lib/librte_ethdev/rte_ethdev_version.map | 5 ++ > > > 12 files changed, 343 insertions(+) > > > > > > > A couple of meta comments: > > 1) Could this be part of dev_info_get somehow? > > > > https://patchwork.dpdk.org/patch/57624/ > 'Think of a better way that doesn't break ABI.' ;-) That comment was made relative to 19.08, but 19.11 is the time where API/ABI breakage is allowed. > > 2) Why should application care? Is this just a test hook? > > https://patches.dpdk.org/cover/57623/ > This is from FD.io VPP's bug, and finally, we come out > this API for application accessing the burst mode information. > It can be used as a simple trace or something like performance > analysis like why slow ? Not in vector, anyway, application can > get this burst mode information now, not just open PMD debug log > level. From an architecture perspective, diagnostics are good but VPP is probably taking that too far. It is possible to expose local symbols if they want to keep using dlsym() by adjusting linker flags. It is more that VPP is stripping everything. Since VPP has chosen to go their own way is fixable inside VPP without changing DPDK. Also, long term VPP is going away from using DPDK drivers. Probably soon they will have their own drivers for i40e and ice anyway. The basis of my concern is that this is one of those kind of API's that creates long term technical debt around supporting it as other things change.
On 9/26/2019 6:15 PM, Stephen Hemminger wrote: > On Thu, 26 Sep 2019 16:36:09 +0000 > "Wang, Haiyue" <haiyue.wang@intel.com> wrote: > >> Hi Stephen, >> >>> -----Original Message----- >>> From: Stephen Hemminger [mailto:stephen@networkplumber.org] >>> Sent: Thursday, September 26, 2019 23:57 >>> To: Wang, Haiyue <haiyue.wang@intel.com> >>> Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>; Ye, Xiaolong <xiaolong.ye@intel.com>; >>> Kinsella, Ray <ray.kinsella@intel.com>; Iremonger, Bernard <bernard.iremonger@intel.com>; Sun, Chenmin >>> <chenmin.sun@intel.com> >>> Subject: Re: [dpdk-dev] [PATCH v1 0/4] get Rx/Tx packet burst mode information >>> >>> On Thu, 26 Sep 2019 19:48:14 +0800 >>> Haiyue Wang <haiyue.wang@intel.com> wrote: >>> >>>> RFCv3 -> v1: >>>> https://patchwork.dpdk.org/patch/59103/ >>>> https://patchwork.dpdk.org/patch/59104/ >>>> https://patchwork.dpdk.org/patch/59105/ >>>> https://patchwork.dpdk.org/patch/59106/ >>>> 1). Use the function 'rte_bsf64' to iterate the options for >>>> getting the name. >>>> >>>> Haiyue Wang (4): >>>> ethdev: add the API for getting burst mode information >>>> net/i40e: support to get the Rx/Tx burst mode >>>> net/ice: support to get the Rx/Tx burst mode >>>> app/testpmd: show the Rx/Tx burst mode description >>>> >>>> app/test-pmd/config.c | 29 +++++++++ >>>> doc/guides/rel_notes/release_19_11.rst | 9 +++ >>>> drivers/net/i40e/i40e_ethdev.c | 2 + >>>> drivers/net/i40e/i40e_ethdev.h | 4 ++ >>>> drivers/net/i40e/i40e_rxtx.c | 72 +++++++++++++++++++++ >>>> drivers/net/ice/ice_ethdev.c | 2 + >>>> drivers/net/ice/ice_rxtx.c | 54 ++++++++++++++++ >>>> drivers/net/ice/ice_rxtx.h | 4 ++ >>>> lib/librte_ethdev/rte_ethdev.c | 75 ++++++++++++++++++++++ >>>> lib/librte_ethdev/rte_ethdev.h | 82 ++++++++++++++++++++++++ >>>> lib/librte_ethdev/rte_ethdev_core.h | 5 ++ >>>> lib/librte_ethdev/rte_ethdev_version.map | 5 ++ >>>> 12 files changed, 343 insertions(+) >>>> >>> >>> A couple of meta comments: >>> 1) Could this be part of dev_info_get somehow? >>> >> >> https://patchwork.dpdk.org/patch/57624/ >> 'Think of a better way that doesn't break ABI.' ;-) > > That comment was made relative to 19.08, but 19.11 is the time where > API/ABI breakage is allowed. 'rte_eth_dev_info_get()' is already a little messy, yes this can be part of it but I think separate, smaller, better defined APIs are better. Also almost everybody interested in 'rte_eth_dev_info_get()', but not sure everyone will be interested in this info. > >>> 2) Why should application care? Is this just a test hook? >> >> https://patches.dpdk.org/cover/57623/ >> This is from FD.io VPP's bug, and finally, we come out >> this API for application accessing the burst mode information. >> It can be used as a simple trace or something like performance >> analysis like why slow ? Not in vector, anyway, application can >> get this burst mode information now, not just open PMD debug log >> level. > > From an architecture perspective, diagnostics are good but VPP is probably > taking that too far. It is possible to expose local symbols if they > want to keep using dlsym() by adjusting linker flags. It is more that VPP > is stripping everything. Since VPP has chosen to go their own > way is fixable inside VPP without changing DPDK. Also, long term VPP is > going away from using DPDK drivers. Probably soon they will have their > own drivers for i40e and ice anyway. > > > The basis of my concern is that this is one of those kind of API's > that creates long term technical debt around supporting it as other > things change. >
> -----Original Message----- > From: Stephen Hemminger [mailto:stephen@networkplumber.org] > Sent: Friday, September 27, 2019 01:15 > To: Wang, Haiyue <haiyue.wang@intel.com> > Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>; Ye, Xiaolong <xiaolong.ye@intel.com>; > Kinsella, Ray <ray.kinsella@intel.com>; Iremonger, Bernard <bernard.iremonger@intel.com>; Sun, Chenmin > <chenmin.sun@intel.com> > Subject: Re: [dpdk-dev] [PATCH v1 0/4] get Rx/Tx packet burst mode information > > On Thu, 26 Sep 2019 16:36:09 +0000 > "Wang, Haiyue" <haiyue.wang@intel.com> wrote: > > > Hi Stephen, > > > > > -----Original Message----- > > > From: Stephen Hemminger [mailto:stephen@networkplumber.org] > > > Sent: Thursday, September 26, 2019 23:57 > > > To: Wang, Haiyue <haiyue.wang@intel.com> > > > Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>; Ye, Xiaolong <xiaolong.ye@intel.com>; > > > Kinsella, Ray <ray.kinsella@intel.com>; Iremonger, Bernard <bernard.iremonger@intel.com>; Sun, > Chenmin > > > <chenmin.sun@intel.com> > > > Subject: Re: [dpdk-dev] [PATCH v1 0/4] get Rx/Tx packet burst mode information > > > > > > On Thu, 26 Sep 2019 19:48:14 +0800 > > > Haiyue Wang <haiyue.wang@intel.com> wrote: > > > > > > > RFCv3 -> v1: > > > > https://patchwork.dpdk.org/patch/59103/ > > > > https://patchwork.dpdk.org/patch/59104/ > > > > https://patchwork.dpdk.org/patch/59105/ > > > > https://patchwork.dpdk.org/patch/59106/ > > > > 1). Use the function 'rte_bsf64' to iterate the options for > > > > getting the name. > > > > > > > > Haiyue Wang (4): > > > > ethdev: add the API for getting burst mode information > > > > net/i40e: support to get the Rx/Tx burst mode > > > > net/ice: support to get the Rx/Tx burst mode > > > > app/testpmd: show the Rx/Tx burst mode description > > > > > > > > app/test-pmd/config.c | 29 +++++++++ > > > > doc/guides/rel_notes/release_19_11.rst | 9 +++ > > > > drivers/net/i40e/i40e_ethdev.c | 2 + > > > > drivers/net/i40e/i40e_ethdev.h | 4 ++ > > > > drivers/net/i40e/i40e_rxtx.c | 72 +++++++++++++++++++++ > > > > drivers/net/ice/ice_ethdev.c | 2 + > > > > drivers/net/ice/ice_rxtx.c | 54 ++++++++++++++++ > > > > drivers/net/ice/ice_rxtx.h | 4 ++ > > > > lib/librte_ethdev/rte_ethdev.c | 75 ++++++++++++++++++++++ > > > > lib/librte_ethdev/rte_ethdev.h | 82 ++++++++++++++++++++++++ > > > > lib/librte_ethdev/rte_ethdev_core.h | 5 ++ > > > > lib/librte_ethdev/rte_ethdev_version.map | 5 ++ > > > > 12 files changed, 343 insertions(+) > > > > > > > > > > A couple of meta comments: > > > 1) Could this be part of dev_info_get somehow? > > > > > > > https://patchwork.dpdk.org/patch/57624/ > > 'Think of a better way that doesn't break ABI.' ;-) > > That comment was made relative to 19.08, but 19.11 is the time where > API/ABI breakage is allowed. > Since 'rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)' focuses on 'port' level, the new rx/tx_burst_mode API can support 'queue' level: 'rte_eth_tx_burst_mode_get(uint16_t port_id, uint16_t queue_id ...', in other words, PMD can optimize their queues in Vector/Scalar/... modes for each queue, not have to just one mode for all queues at the same time, this API can return "Per Queue" information. > > > 2) Why should application care? Is this just a test hook? > > > > https://patches.dpdk.org/cover/57623/ > > This is from FD.io VPP's bug, and finally, we come out > > this API for application accessing the burst mode information. > > It can be used as a simple trace or something like performance > > analysis like why slow ? Not in vector, anyway, application can > > get this burst mode information now, not just open PMD debug log > > level. > > From an architecture perspective, diagnostics are good but VPP is probably > taking that too far. It is possible to expose local symbols if they > want to keep using dlsym() by adjusting linker flags. It is more that VPP > is stripping everything. Since VPP has chosen to go their own > way is fixable inside VPP without changing DPDK. Also, long term VPP is > going away from using DPDK drivers. Probably soon they will have their > own drivers for i40e and ice anyway. > > > The basis of my concern is that this is one of those kind of API's > that creates long term technical debt around supporting it as other > things change. At first, we use 'string format' to make VPP happy, now, we use bit-fields for general use. People come, people go, even VPP left DPDK, now, testpmd is the first user, and I think it is good for 'test' the PMD with friendly information: testpmd> show rxq info 0 0 ********************* Infos for port 0 , RX queue 0 ********************* Mempool: mbuf_pool_socket_0 RX prefetch threshold: 0 RX host threshold: 0 RX writeback threshold: 0 RX free threshold: 32 RX drop packets: off RX deferred start: off RX scattered packets: off Number of RXDs: 1024 Burst mode: Vector AVX2 =============> direct information, not have to check the code and open debug to make sure every setting is right. testpmd> show txq info 0 0 ********************* Infos for port 0 , TX queue 0 ********************* TX prefetch threshold: 32 TX host threshold: 0 TX writeback threshold: 0 TX RS threshold: 32 TX free threshold: 32 TX deferred start: off Number of TXDs: 1024 Burst mode: Vector AVX2 =============>