> -----Original Message-----
> From: Yigit, Ferruh <ferruh.yi...@intel.com>
> Sent: Wednesday, October 14, 2020 10:27
> To: Yigit, Ferruh <ferruh.yi...@intel.com>; John W. Linville
> <linvi...@tuxdriver.com>; Loftus, Ciara <ciara.lof...@intel.com>; Zhang, Qi Z
> <qi.z.zh...@intel.com>; Shepard Siegel <shepard.sie...@atomicrules.com>;
> Ed Czeck <ed.cz...@atomicrules.com>; John Miller
> <john.mil...@atomicrules.com>; Igor Russkikh
> <igor.russk...@aquantia.com>; Pavel Belous <pavel.bel...@aquantia.com>;
> Steven Webster <steven.webs...@windriver.com>; Matt Peters
> <matt.pet...@windriver.com>; Somalapuram Amaranath
> <asoma...@amd.com>; Rasesh Mody <rm...@marvell.com>; Shahed
> Shaikh <shsha...@marvell.com>; Ajit Khaparde
> <ajit.khapa...@broadcom.com>; Somnath Kotur
> <somnath.ko...@broadcom.com>; Chas Williams <ch...@att.com>; Min Hu
> (Connor) <humi...@huawei.com>; Rahul Lakkireddy
> <rahul.lakkire...@chelsio.com>; Hemant Agrawal
> <hemant.agra...@nxp.com>; Sachin Saxena <sachin.sax...@oss.nxp.com>;
> Guo, Jia <jia....@intel.com>; Wang, Haiyue <haiyue.w...@intel.com>;
> Marcin Wojtas <m...@semihalf.com>; Michal Krawczyk <m...@semihalf.com>;
> Guy Tzalik <gtza...@amazon.com>; Evgeny Schemeilin
> <evge...@amazon.com>; Igor Chauskin <igo...@amazon.com>;
> Gagandeep Singh <g.si...@nxp.com>; John Daley <johnd...@cisco.com>;
> Hyong Youb Kim <hyon...@cisco.com>; Gaetan Rivet <gr...@u256.net>;
> Wang, Xiao W <xiao.w.w...@intel.com>; Ziyang Xuan
> <xuanziya...@huawei.com>; Xiaoyun Wang
> <cloud.wangxiao...@huawei.com>; Guoyang Zhou
> <zhouguoy...@huawei.com>; Wei Hu (Xavier)
> <xavier.hu...@huawei.com>; Yisen Zhuang <yisen.zhu...@huawei.com>;
> Xing, Beilei <beilei.x...@intel.com>; Wu, Jingjing <jingjing...@intel.com>;
> Yang, Qiming <qiming.y...@intel.com>; Alfredo Cardigliano
> <cardigli...@ntop.org>; Xu, Rosen <rosen...@intel.com>; Shijith Thotton
> <sthot...@marvell.com>; Srisivasubramanian Srinivasan
> <sriniva...@marvell.com>; Jakub Grajciar <jgraj...@cisco.com>; Matan
> Azrad <ma...@nvidia.com>; Shahaf Shuler <shah...@nvidia.com>;
> Viacheslav Ovsiienko <viachesl...@nvidia.com>; Zyta Szpak
> <z...@semihalf.com>; Liron Himi <lir...@marvell.com>; Stephen Hemminger
> <sthem...@microsoft.com>; K. Y. Srinivasan <k...@microsoft.com>;
> Haiyang Zhang <haiya...@microsoft.com>; Long Li <lon...@microsoft.com>;
> Martin Spinler <spin...@cesnet.cz>; Heinrich Kuhn
> <heinrich.k...@netronome.com>; Tetsuya Mukawa
> <mtetsu...@gmail.com>; Harman Kalra <hka...@marvell.com>; Jerin Jacob
> <jer...@marvell.com>; Nithin Dabilpuram <ndabilpu...@marvell.com>;
> Kiran Kumar K <kirankum...@marvell.com>; Akhil Goyal
> <akhil.go...@nxp.com>; Richardson, Bruce <bruce.richard...@intel.com>;
> Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>; Wiles, Keith
> <keith.wi...@intel.com>; Maciej Czekaj <mcze...@marvell.com>; Maxime
> Coquelin <maxime.coque...@redhat.com>; Xia, Chenbo
> <chenbo....@intel.com>; Wang, Zhihong <zhihong.w...@intel.com>; Yong
> Wang <yongw...@vmware.com>; Thomas Monjalon
> <tho...@monjalon.net>
> Cc: dev@dpdk.org
> Subject: [RFC v2 1/2] ethdev: provide device flag to bypass ethdev queue
> xstats
>
> Queue stats are stored in 'struct rte_eth_stats' as array and array size is
> defined by 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag.
>
> As a result of technical board discussion, decided to remove the queue
> statistics from 'struct rte_eth_stats' in the long term.
>
> Instead PMDs should represent the queue statistics via xstats, this gives
> more flexibility on the number of the queues supported.
>
> Currently queue stats in the xstats are filled by ethdev layer, using some
> basic stats, when queue stats removed from basic stats the responsibility to
> fill the relevant xstats will be pushed to the PMDs.
>
> During the switch period, temporary
> 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS'
> device flag is created. Initially all PMDs using xstats set this flag.
> The PMDs implemented queue stats in the xstats should clear the flag.
>
> When all PMDs switch to the xstats for the queue stats, queue stats related
> fields from 'struct rte_eth_stats' will be removed, as well as
> 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS' flag.
> Later 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag also can be
> removed.
>
> Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com>
> ---
> drivers/net/af_packet/rte_eth_af_packet.c | 1 +
> drivers/net/af_xdp/rte_eth_af_xdp.c | 1 +
> drivers/net/ark/ark_ethdev.c | 2 ++
> drivers/net/atlantic/atl_ethdev.c | 2 ++
> drivers/net/avp/avp_ethdev.c | 1 +
> drivers/net/axgbe/axgbe_ethdev.c | 2 ++
> drivers/net/bnx2x/bnx2x_ethdev.c | 1 +
> drivers/net/bnxt/bnxt_ethdev.c | 1 +
> drivers/net/bnxt/bnxt_reps.c | 3 ++-
> drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
> drivers/net/cxgbe/cxgbe_ethdev.c | 2 ++
> drivers/net/dpaa/dpaa_ethdev.c | 2 ++
> drivers/net/dpaa2/dpaa2_ethdev.c | 2 ++
> drivers/net/e1000/em_ethdev.c | 1 +
> drivers/net/e1000/igb_ethdev.c | 2 ++
> drivers/net/ena/ena_ethdev.c | 2 ++
> drivers/net/enetc/enetc_ethdev.c | 2 ++
> drivers/net/enic/enic_ethdev.c | 1 +
> drivers/net/enic/enic_vf_representor.c | 3 ++-
> drivers/net/failsafe/failsafe.c | 3 ++-
> drivers/net/fm10k/fm10k_ethdev.c | 1 +
> drivers/net/hinic/hinic_pmd_ethdev.c | 2 ++
> drivers/net/hns3/hns3_ethdev.c | 2 ++
> drivers/net/hns3/hns3_ethdev_vf.c | 2 ++
> drivers/net/i40e/i40e_ethdev.c | 1 +
> drivers/net/i40e/i40e_ethdev_vf.c | 1 +
> drivers/net/i40e/i40e_vf_representor.c | 3 ++-
> drivers/net/iavf/iavf_ethdev.c | 1 +
> drivers/net/ice/ice_dcf_ethdev.c | 2 ++
> drivers/net/ice/ice_ethdev.c | 2 ++
> drivers/net/igc/igc_ethdev.c | 1 +
> drivers/net/ionic/ionic_ethdev.c | 1 +
> drivers/net/ipn3ke/ipn3ke_representor.c | 3 ++-
> drivers/net/ixgbe/ixgbe_ethdev.c | 2 ++
> drivers/net/kni/rte_eth_kni.c | 1 +
> drivers/net/liquidio/lio_ethdev.c | 1 +
> drivers/net/memif/rte_eth_memif.c | 1 +
> drivers/net/mlx4/mlx4.c | 1 +
> drivers/net/mlx5/linux/mlx5_os.c | 1 +
> drivers/net/mvneta/mvneta_ethdev.c | 1 +
> drivers/net/mvpp2/mrvl_ethdev.c | 1 +
> drivers/net/netvsc/hn_ethdev.c | 2 ++
> drivers/net/nfb/nfb_ethdev.c | 2 ++
> drivers/net/nfp/nfp_net.c | 2 ++
> drivers/net/null/rte_eth_null.c | 1 +
> drivers/net/octeontx/octeontx_ethdev.c | 1 +
> drivers/net/octeontx2/otx2_ethdev.c | 1 +
> drivers/net/pcap/rte_eth_pcap.c | 1 +
> drivers/net/pfe/pfe_ethdev.c | 2 ++
> drivers/net/qede/qede_ethdev.c | 1 +
> drivers/net/ring/rte_eth_ring.c | 1 +
> drivers/net/sfc/sfc_ethdev.c | 1 +
> drivers/net/szedata2/rte_eth_szedata2.c | 2 ++
> drivers/net/tap/rte_eth_tap.c | 3 ++-
> drivers/net/thunderx/nicvf_ethdev.c | 1 +
> drivers/net/vhost/rte_eth_vhost.c | 3 ++-
> drivers/net/virtio/virtio_ethdev.c | 2 ++
> drivers/net/vmxnet3/vmxnet3_ethdev.c | 1 +
> lib/librte_ethdev/rte_ethdev.c | 18 ++++++++++++++----
> lib/librte_ethdev/rte_ethdev.h | 5 +++++
> 60 files changed, 106 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/net/ipn3ke/ipn3ke_representor.c
> b/drivers/net/ipn3ke/ipn3ke_representor.c
> index b9fb4d4e46..a8765b5f4e 100644
> --- a/drivers/net/ipn3ke/ipn3ke_representor.c
> +++ b/drivers/net/ipn3ke/ipn3ke_representor.c
> @@ -2964,7 +2964,8 @@ ipn3ke_rpst_init(struct rte_eth_dev *ethdev, void
> *init_params)
> return -ENODEV;
> }
>
> - ethdev->data->dev_flags |= RTE_ETH_DEV_REPRESENTOR;
> + ethdev->data->dev_flags |= RTE_ETH_DEV_REPRESENTOR |
> +
> RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
>
> rte_spinlock_lock(&ipn3ke_link_notify_list_lk);
> TAILQ_INSERT_TAIL(&ipn3ke_rpst_list, rpst, next); diff --git
Acked-by: Rosen Xu<rosen...@intel.com>