On 2023/2/15 11:19, Dongdong Liu wrote: > 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 <fengcheng...@huawei.com> > This patch looks good, so > Reviewed-by: Dongdong Liu <liudongdo...@huawei.com> > > A minior question > Do we need to support stats reset ?
Stats is contained by xstats, and future direction I think is xstats. So I think we don't need support stats reset. Thanks. > > 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"); >> > .