[dpdk-dev] [RFC 1/2] ethdev: move queue stats to xstats

Thomas Monjalon thomas at monjalon.net
Mon Oct 12 23:53:08 CEST 2020


12/10/2020 18:46, Ferruh Yigit:
> 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.

Yes

> Currently queue stats in the xstats are filled by ethdev layer, using

"some basic" queue stats

> the 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, a temporary
> 'RTE_ETH_DEV_QUEUE_STATS_IN_XSTATS' device flag is created. The PMDs
> providing the queue stats in the xstats should set this flag to bypass
> the relevant part in ethdev layer.
> 
> 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_QUEUE_STATS_IN_XSTATS' flag.
> Later 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag also can be
> removed.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> ---
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> +/** Device provides queue stats in xstats */
> +#define RTE_ETH_DEV_QUEUE_STATS_IN_XSTATS 0x0040

Not exact wording here and in the title.
We should try to convey the idea that the basic queue stats
are not automatically converted from the array to some xstats.
Something like RTE_ETH_DEV_NO_AUTOFILL_QUEUE_XSTATS

Or we can define the opposite flag and set it by default
in all drivers which fill the basic queue stats.
I suggest RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS




More information about the dev mailing list