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 E39BA41C9C; Wed, 15 Feb 2023 04:19:36 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C779A40EDB; Wed, 15 Feb 2023 04:19:36 +0100 (CET) Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by mails.dpdk.org (Postfix) with ESMTP id EE7D340ED6 for ; Wed, 15 Feb 2023 04:19:34 +0100 (CET) Received: from kwepemi500017.china.huawei.com (unknown [172.30.72.57]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4PGjtJ3TXVz16NgD; Wed, 15 Feb 2023 11:17:12 +0800 (CST) Received: from [10.67.103.235] (10.67.103.235) by kwepemi500017.china.huawei.com (7.221.188.110) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.6; Wed, 15 Feb 2023 11:19:32 +0800 Subject: Re: [PATCH v5 2/2] ethdev: support xstats reset telemetry command To: Chengwen Feng , , , References: <20221219090723.29356-1-fengchengwen@huawei.com> <20230209023203.35269-1-fengchengwen@huawei.com> <20230209023203.35269-3-fengchengwen@huawei.com> CC: , , , From: Dongdong Liu Message-ID: Date: Wed, 15 Feb 2023 11:19:31 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <20230209023203.35269-3-fengchengwen@huawei.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.67.103.235] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To kwepemi500017.china.huawei.com (7.221.188.110) X-CFilter-Loop: Reflected 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 Hi Chengwen On 2023/2/9 10:32, Chengwen Feng wrote: > The xstats reset is useful for debugging, so add it to the ethdev > telemetry command lists. > > Signed-off-by: Chengwen Feng This patch looks good, so Reviewed-by: Dongdong Liu A minior question Do we need to support stats reset ? Thanks, Dongdong > --- > lib/ethdev/rte_ethdev.c | 31 +++++++++++++++++++++++++++++++ > 1 file changed, 31 insertions(+) > > diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c > index d25db35f7f..e85c98f307 100644 > --- a/lib/ethdev/rte_ethdev.c > +++ b/lib/ethdev/rte_ethdev.c > @@ -5915,6 +5915,35 @@ eth_dev_handle_port_xstats(const char *cmd __rte_unused, > return 0; > } > > +static int > +eth_dev_handle_port_xstats_reset(const char *cmd __rte_unused, > + const char *params, > + struct rte_tel_data *d) > +{ > + int port_id, ret; > + char *end_param; > + > + if (params == NULL || strlen(params) == 0 || !isdigit(*params)) > + return -1; > + > + port_id = strtoul(params, &end_param, 0); > + if (*end_param != '\0') > + RTE_ETHDEV_LOG(NOTICE, > + "Extra parameters passed to ethdev telemetry command, ignoring\n"); > + if (!rte_eth_dev_is_valid_port(port_id)) > + return -1; > + > + ret = rte_eth_xstats_reset(port_id); > + if (ret == 0) { > + rte_tel_data_string(d, "success"); > + RTE_ETHDEV_LOG(NOTICE, "Port %d reset xstats success\n", port_id); > + } else { > + RTE_ETHDEV_LOG(ERR, "Port %d reset xstats failed! ret: %d\n", port_id, ret); > + } > + > + return ret; > +} > + > #ifndef RTE_EXEC_ENV_WINDOWS > static int > eth_dev_handle_port_dump_priv(const char *cmd __rte_unused, > @@ -6329,6 +6358,8 @@ RTE_INIT(ethdev_init_telemetry) > "Returns the common stats for a port. Parameters: int port_id"); > rte_telemetry_register_cmd("/ethdev/xstats", eth_dev_handle_port_xstats, > "Returns the extended stats for a port. Parameters: int port_id"); > + rte_telemetry_register_cmd("/ethdev/xstats_reset", eth_dev_handle_port_xstats_reset, > + "Reset the extended stats for a port. Parameters: int port_id"); > #ifndef RTE_EXEC_ENV_WINDOWS > rte_telemetry_register_cmd("/ethdev/dump_priv", eth_dev_handle_port_dump_priv, > "Returns dump private information for a port. Parameters: int port_id"); >