[dpdk-dev] [RFC v2 2/2] doc: announce queue stats moving to xstats
Igor Ryzhov
iryzhov at nfware.com
Wed Oct 14 11:35:34 CEST 2020
Hi Ferruh,
As rte_eth_stats is going to be changed, is it possible to add new counters
there?
For example, in/out multicast/broadcast packets.
Igor
On Wed, Oct 14, 2020 at 5:27 AM Ferruh Yigit <ferruh.yigit at intel.com> wrote:
> Queue stats will be removed from basic stats to xstats.
>
> It will be PMDs responsibility to fill queue stats based on number of
> queues they have.
>
> Until all PMDs implement the xstats, a temporary
> 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS' device flag created. PMDs switched
> to the xstats should clear this flag to bypass the ethdev layer autofill
> for queue stats.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> ---
> config/rte_config.h | 2 +-
> doc/guides/rel_notes/deprecation.rst | 7 +++++++
> lib/librte_ethdev/rte_ethdev.h | 3 +++
> 3 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/config/rte_config.h b/config/rte_config.h
> index 03d90d78bc..9ef3b75940 100644
> --- a/config/rte_config.h
> +++ b/config/rte_config.h
> @@ -55,7 +55,7 @@
>
> /* ether defines */
> #define RTE_MAX_QUEUES_PER_PORT 1024
> -#define RTE_ETHDEV_QUEUE_STAT_CNTRS 16
> +#define RTE_ETHDEV_QUEUE_STAT_CNTRS 16 /* max 256 */
> #define RTE_ETHDEV_RXTX_CALLBACKS 1
>
> /* cryptodev defines */
> diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> index 584e720879..9143cfc529 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -164,6 +164,13 @@ Deprecation Notices
> following the IPv6 header, as proposed in RFC
> https://mails.dpdk.org/archives/dev/2020-August/177257.html.
>
> +* ethdev: Queue specific stats fields will be removed from ``struct
> rte_eth_stats``.
> + Mentioned fields are: ``q_ipackets``, ``q_opackets``, ``q_ibytes``,
> ``q_obytes``,
> + ``q_errors``.
> + Instead queue stats will be received via xstats API. Current method
> support
> + will be limited to maximum 256 queues.
> + Also compile time flag ``RTE_ETHDEV_QUEUE_STAT_CNTRS`` will be removed.
> +
> * security: The API ``rte_security_session_create`` takes only single
> mempool
> for session and session private data. So the application need to create
> mempool for twice the number of sessions needed and will also lead to
> diff --git a/lib/librte_ethdev/rte_ethdev.h
> b/lib/librte_ethdev/rte_ethdev.h
> index bb7a2b4289..a2e811ca48 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -253,6 +253,7 @@ struct rte_eth_stats {
> uint64_t ierrors; /**< Total number of erroneous received
> packets. */
> uint64_t oerrors; /**< Total number of failed transmitted
> packets. */
> uint64_t rx_nombuf; /**< Total number of RX mbuf allocation
> failures. */
> + /* Queue stats are limited to max 256 queues */
> uint64_t q_ipackets[RTE_ETHDEV_QUEUE_STAT_CNTRS];
> /**< Total number of queue RX packets. */
> uint64_t q_opackets[RTE_ETHDEV_QUEUE_STAT_CNTRS];
> @@ -2704,6 +2705,7 @@ int rte_eth_xstats_reset(uint16_t port_id);
> * The per-queue packet statistics functionality number that the
> transmit
> * queue is to be assigned.
> * The value must be in the range [0, RTE_ETHDEV_QUEUE_STAT_CNTRS - 1].
> + * Max RTE_ETHDEV_QUEUE_STAT_CNTRS being 256.
> * @return
> * Zero if successful. Non-zero otherwise.
> */
> @@ -2724,6 +2726,7 @@ int rte_eth_dev_set_tx_queue_stats_mapping(uint16_t
> port_id,
> * The per-queue packet statistics functionality number that the receive
> * queue is to be assigned.
> * The value must be in the range [0, RTE_ETHDEV_QUEUE_STAT_CNTRS - 1].
> + * Max RTE_ETHDEV_QUEUE_STAT_CNTRS being 256.
> * @return
> * Zero if successful. Non-zero otherwise.
> */
> --
> 2.26.2
>
>
More information about the dev
mailing list