From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AAFA6A0032; Thu, 12 May 2022 12:26:50 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 57A9E40E64; Thu, 12 May 2022 12:26:50 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 77DB24014F for ; Thu, 12 May 2022 12:26:49 +0200 (CEST) Received: from [192.168.38.17] (aros.oktetlabs.ru [192.168.38.17]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id 5D73486; Thu, 12 May 2022 13:26:48 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 5D73486 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1652351208; bh=DTz5XN+EhGI+DHh9xACH3qPjh/HimbATtxjGHG3/Tlg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=m/Pgb0gU1oUtVhKM3ZDEJ683PklQqBPvsVRCiJJsTM5h8DvwySjgg+aJauBozHofl nozg5ZVQ2Dxgjb5faQdFYC+WCxBmE/c4alCLhz3jixVz6zHqY8hUN2w8SkfsvcvovK WDaJWLXu2lZfQh5m5UAji1+jVX2hlQ2hprXS7P6Q= Message-ID: <74e9be9d-cf50-20fe-2d78-c92ca0e2fa13@oktetlabs.ru> Date: Thu, 12 May 2022 13:26:48 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: [PATCH v3 08/10] ethdev: support auto-filled flag when telemetry stats Content-Language: en-US To: Chengwen Feng , thomas@monjalon.net, ferruh.yigit@xilinx.com, ndabilpuram@marvell.com, kirankumark@marvell.com, skori@marvell.com, skoteshwar@marvell.com Cc: mb@smartsharesystems.com, stephen@networkplumber.org, dev@dpdk.org References: <20220416010747.40714-1-fengchengwen@huawei.com> <20220505080233.12737-1-fengchengwen@huawei.com> <20220505080233.12737-9-fengchengwen@huawei.com> From: Andrew Rybchenko Organization: OKTET Labs In-Reply-To: <20220505080233.12737-9-fengchengwen@huawei.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 5/5/22 11:02, Chengwen Feng wrote: > This patch supports auto-filled queue xstats when telemetry stats. > > Fixes: f30e69b41f94 ("ethdev: add device flag to bypass auto-filled queue xstats") > Cc: stable@dpdk.org > > Signed-off-by: Chengwen Feng > --- > lib/ethdev/rte_ethdev.c | 14 +++++++++----- > 1 file changed, 9 insertions(+), 5 deletions(-) > > diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c > index f26a9bac6d..76037e635b 100644 > --- a/lib/ethdev/rte_ethdev.c > +++ b/lib/ethdev/rte_ethdev.c > @@ -5499,6 +5499,7 @@ eth_dev_handle_port_stats(const char *cmd __rte_unused, > struct rte_tel_data *d) > { > struct rte_eth_stats stats; > + struct rte_eth_dev *dev; > int port_id, ret; > > if (params == NULL || strlen(params) == 0 || !isdigit(*params)) > @@ -5507,6 +5508,7 @@ eth_dev_handle_port_stats(const char *cmd __rte_unused, > port_id = atoi(params); > if (!rte_eth_dev_is_valid_port(port_id)) > return -1; > + dev = &rte_eth_devices[port_id]; > > ret = rte_eth_stats_get(port_id, &stats); > if (ret < 0) > @@ -5521,11 +5523,13 @@ eth_dev_handle_port_stats(const char *cmd __rte_unused, > ADD_DICT_STAT(stats, ierrors); > ADD_DICT_STAT(stats, oerrors); > ADD_DICT_STAT(stats, rx_nombuf); > - eth_dev_add_port_queue_stats(d, stats.q_ipackets, "q_ipackets"); > - eth_dev_add_port_queue_stats(d, stats.q_opackets, "q_opackets"); > - eth_dev_add_port_queue_stats(d, stats.q_ibytes, "q_ibytes"); > - eth_dev_add_port_queue_stats(d, stats.q_obytes, "q_obytes"); > - eth_dev_add_port_queue_stats(d, stats.q_errors, "q_errors"); > + if (dev->data->dev_flags & RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS) { I don't understand it. RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS driver flag means that driver asks ethdev layer to autofill per-queue *xstats* (generate names and put values) using per-queue basic statistics. Drivers do no set the flag if provide per-queue xstats itself (to avoid duplication) or do not fill in per-queue basic xstats (to avoid meaningless/misleading zeros in xstats). So, absence of the flag does not mean that per-queue basic statistics are not filled in and should be used as the guard to include corresponding values in telemetry. > + eth_dev_add_port_queue_stats(d, stats.q_ipackets, "q_ipackets"); > + eth_dev_add_port_queue_stats(d, stats.q_opackets, "q_opackets"); > + eth_dev_add_port_queue_stats(d, stats.q_ibytes, "q_ibytes"); > + eth_dev_add_port_queue_stats(d, stats.q_obytes, "q_obytes"); > + eth_dev_add_port_queue_stats(d, stats.q_errors, "q_errors"); > + } > > return 0; > }