[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