On 10/12/2020 10:53 PM, Thomas Monjalon wrote:
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.yi...@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


Agree that opposite flag makes it easier to traces the PMDs missing implementation, will send another RFC with it.

Reply via email to