* [PATCH 0/2] enhance ethdev telemetry
@ 2025-10-25 9:42 Chengwen Feng
2025-10-25 9:42 ` [PATCH 1/2] ethdev: support telemetry RSS algorithm Chengwen Feng
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Chengwen Feng @ 2025-10-25 9:42 UTC (permalink / raw)
To: thomas, stephen; +Cc: dev
This patchset contains two commits which enhancing ethdev telemetry.
Chengwen Feng (2):
ethdev: support telemetry RSS algorithm
ethdev: support hide zero when telemetry regs
lib/ethdev/rte_ethdev_telemetry.c | 56 ++++++++++++++++++++++---------
1 file changed, 40 insertions(+), 16 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/2] ethdev: support telemetry RSS algorithm 2025-10-25 9:42 [PATCH 0/2] enhance ethdev telemetry Chengwen Feng @ 2025-10-25 9:42 ` Chengwen Feng 2025-10-25 9:42 ` [PATCH 2/2] ethdev: support hide zero when telemetry regs Chengwen Feng 2025-10-28 13:46 ` [PATCH 0/2] enhance ethdev telemetry Stephen Hemminger 2 siblings, 0 replies; 6+ messages in thread From: Chengwen Feng @ 2025-10-25 9:42 UTC (permalink / raw) To: thomas, stephen; +Cc: dev This commit adds dump RSS algorithm when doing telemetry. Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> --- lib/ethdev/rte_ethdev_telemetry.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ethdev/rte_ethdev_telemetry.c b/lib/ethdev/rte_ethdev_telemetry.c index 519ad34be7..020e3979b0 100644 --- a/lib/ethdev/rte_ethdev_telemetry.c +++ b/lib/ethdev/rte_ethdev_telemetry.c @@ -726,6 +726,10 @@ eth_dev_add_rss_info(struct rte_eth_rss_conf *rss_conf, struct rte_tel_data *d) strlcat(rss_key, key, key_len); } ret = rte_tel_data_add_dict_string(d, "rss_key", rss_key); + if (ret < 0) + goto free_rss_key; + ret = rte_tel_data_add_dict_string(d, "algorithm", + rte_eth_dev_rss_algo_name(rss_conf->algorithm)); free_rss_key: free(rss_key); -- 2.17.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] ethdev: support hide zero when telemetry regs 2025-10-25 9:42 [PATCH 0/2] enhance ethdev telemetry Chengwen Feng 2025-10-25 9:42 ` [PATCH 1/2] ethdev: support telemetry RSS algorithm Chengwen Feng @ 2025-10-25 9:42 ` Chengwen Feng 2025-10-27 16:29 ` Stephen Hemminger 2025-10-28 13:46 ` [PATCH 0/2] enhance ethdev telemetry Stephen Hemminger 2 siblings, 1 reply; 6+ messages in thread From: Chengwen Feng @ 2025-10-25 9:42 UTC (permalink / raw) To: thomas, stephen; +Cc: dev Support hide zero when telemetry regs, and also modify filter usage. Now the usage: /ethdev/regs,0,hide_zero=true --hide zero values when dump regs /ethdev/regs,0,hide_zero=false --don't hide zero values /ethdev/regs,0,filter=ssu --filter ssu module when dump regs /ethdev/regs,0,filter=ssu,hide_zero=true --filter ssu module and hide zero values when dump regs Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> --- lib/ethdev/rte_ethdev_telemetry.c | 52 +++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/lib/ethdev/rte_ethdev_telemetry.c b/lib/ethdev/rte_ethdev_telemetry.c index 020e3979b0..a910864bc5 100644 --- a/lib/ethdev/rte_ethdev_telemetry.c +++ b/lib/ethdev/rte_ethdev_telemetry.c @@ -1383,18 +1383,21 @@ eth_dev_handle_port_tm_node_caps(const char *cmd __rte_unused, static void eth_dev_add_reg_data(struct rte_tel_data *d, struct rte_dev_reg_info *reg_info, - uint32_t idx) + uint32_t idx, bool hide_zero) { + uint64_t val; + if (reg_info->width == sizeof(uint32_t)) - rte_tel_data_add_dict_uint_hex(d, reg_info->names[idx].name, - *((uint32_t *)reg_info->data + idx), 0); + val = *((uint32_t *)reg_info->data + idx); else - rte_tel_data_add_dict_uint_hex(d, reg_info->names[idx].name, - *((uint64_t *)reg_info->data + idx), 0); + val = *((uint64_t *)reg_info->data + idx); + + if (!hide_zero || val > 0) + rte_tel_data_add_dict_uint_hex(d, reg_info->names[idx].name, val, 0); } static int -eth_dev_store_regs(struct rte_tel_data *d, struct rte_dev_reg_info *reg_info) +eth_dev_store_regs(struct rte_tel_data *d, struct rte_dev_reg_info *reg_info, bool hide_zero) { struct rte_tel_data *groups[RTE_TEL_MAX_DICT_ENTRIES]; char group_name[RTE_TEL_MAX_STRING_LEN] = {0}; @@ -1419,7 +1422,7 @@ eth_dev_store_regs(struct rte_tel_data *d, struct rte_dev_reg_info *reg_info) for (i = 0; i < reg_info->length; i++) { if (i % RTE_TEL_MAX_DICT_ENTRIES != 0) { - eth_dev_add_reg_data(group, reg_info, i); + eth_dev_add_reg_data(group, reg_info, i, hide_zero); continue; } @@ -1431,7 +1434,7 @@ eth_dev_store_regs(struct rte_tel_data *d, struct rte_dev_reg_info *reg_info) } groups[grp_num++] = group; rte_tel_data_start_dict(group); - eth_dev_add_reg_data(group, reg_info, i); + eth_dev_add_reg_data(group, reg_info, i, hide_zero); } for (i = 0; i < grp_num; i++) { @@ -1447,7 +1450,7 @@ eth_dev_store_regs(struct rte_tel_data *d, struct rte_dev_reg_info *reg_info) } static int -eth_dev_get_port_regs(int port_id, struct rte_tel_data *d, char *filter) +eth_dev_get_port_regs(int port_id, struct rte_tel_data *d, char *filter, bool hide_zero) { struct rte_dev_reg_info reg_info; int ret; @@ -1481,7 +1484,7 @@ eth_dev_get_port_regs(int port_id, struct rte_tel_data *d, char *filter) goto out; } - ret = eth_dev_store_regs(d, ®_info); + ret = eth_dev_store_regs(d, ®_info, hide_zero); out: free(reg_info.data); free(reg_info.names); @@ -1494,7 +1497,11 @@ eth_dev_handle_port_regs(const char *cmd __rte_unused, const char *params, struct rte_tel_data *d) { - char *filter, *end_param; + const char *const valid_keys[] = { "filter", "hide_zero", NULL }; + struct rte_kvargs *kvlist = NULL; + char *filter = NULL, *end_param; + const char *filter_val; + bool hide_zero = false; uint16_t port_id; int ret; @@ -1502,11 +1509,24 @@ eth_dev_handle_port_regs(const char *cmd __rte_unused, if (ret != 0) return ret; - filter = strtok(end_param, ","); - if (filter != NULL && strlen(filter) == 0) - filter = NULL; + if (*end_param != '\0') { + kvlist = rte_kvargs_parse(end_param, valid_keys); + filter_val = rte_kvargs_get(kvlist, "filter"); + ret = rte_kvargs_process(kvlist, "hide_zero", eth_dev_parse_hide_zero, &hide_zero); + if (kvlist == NULL || (filter_val != NULL && strlen(filter_val) == 0) || ret != 0) { + RTE_ETHDEV_LOG_LINE(NOTICE, + "Unknown extra parameters passed to ethdev telemetry command, ignoring"); + } else { + filter = (filter_val != NULL) ? strdup(filter_val) : NULL; + hide_zero = false; + } + rte_kvargs_free(kvlist); + } + + ret = eth_dev_get_port_regs(port_id, d, filter, hide_zero); + free(filter); - return eth_dev_get_port_regs(port_id, d, filter); + return ret; } static int eth_dev_telemetry_do(const char *cmd, const char *params, void *arg, @@ -1582,5 +1602,5 @@ RTE_INIT(ethdev_init_telemetry) eth_dev_telemetry_do, eth_dev_handle_port_tm_node_caps, "Returns TM Node Capabilities info for a port. Parameters: int port_id, int node_id (see tm_capability for the max)"); rte_telemetry_register_cmd("/ethdev/regs", eth_dev_handle_port_regs, - "Returns all or filtered registers info for a port. Parameters: int port_id, string module_name (Optional if show all)"); + "Returns registers info for a port. Parameters: int port_id,filter=xxx(Optional if show all),hide_zero=true|false(Optional)"); } -- 2.17.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] ethdev: support hide zero when telemetry regs 2025-10-25 9:42 ` [PATCH 2/2] ethdev: support hide zero when telemetry regs Chengwen Feng @ 2025-10-27 16:29 ` Stephen Hemminger 0 siblings, 0 replies; 6+ messages in thread From: Stephen Hemminger @ 2025-10-27 16:29 UTC (permalink / raw) To: Chengwen Feng; +Cc: thomas, dev On Sat, 25 Oct 2025 17:42:39 +0800 Chengwen Feng <fengchengwen@huawei.com> wrote: > Support hide zero when telemetry regs, and also modify filter usage. > > Now the usage: > /ethdev/regs,0,hide_zero=true --hide zero values when dump regs > /ethdev/regs,0,hide_zero=false --don't hide zero values > > /ethdev/regs,0,filter=ssu --filter ssu module when dump regs > > /ethdev/regs,0,filter=ssu,hide_zero=true > --filter ssu module and hide zero values when dump regs > > Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Recheck-request: iol-unit-amd64-testing, iol-sample-apps-testing ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] enhance ethdev telemetry 2025-10-25 9:42 [PATCH 0/2] enhance ethdev telemetry Chengwen Feng 2025-10-25 9:42 ` [PATCH 1/2] ethdev: support telemetry RSS algorithm Chengwen Feng 2025-10-25 9:42 ` [PATCH 2/2] ethdev: support hide zero when telemetry regs Chengwen Feng @ 2025-10-28 13:46 ` Stephen Hemminger 2025-10-29 0:56 ` fengchengwen 2 siblings, 1 reply; 6+ messages in thread From: Stephen Hemminger @ 2025-10-28 13:46 UTC (permalink / raw) To: Chengwen Feng; +Cc: thomas, dev On Sat, 25 Oct 2025 17:42:37 +0800 Chengwen Feng <fengchengwen@huawei.com> wrote: > This patchset contains two commits which enhancing ethdev telemetry. > > Chengwen Feng (2): > ethdev: support telemetry RSS algorithm > ethdev: support hide zero when telemetry regs > > lib/ethdev/rte_ethdev_telemetry.c | 56 ++++++++++++++++++++++--------- > 1 file changed, 40 insertions(+), 16 deletions(-) > Queued to next-net Does the documentation need updating? or a release note? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] enhance ethdev telemetry 2025-10-28 13:46 ` [PATCH 0/2] enhance ethdev telemetry Stephen Hemminger @ 2025-10-29 0:56 ` fengchengwen 0 siblings, 0 replies; 6+ messages in thread From: fengchengwen @ 2025-10-29 0:56 UTC (permalink / raw) To: Stephen Hemminger; +Cc: thomas, dev On 10/28/2025 9:46 PM, Stephen Hemminger wrote: > On Sat, 25 Oct 2025 17:42:37 +0800 > Chengwen Feng <fengchengwen@huawei.com> wrote: > >> This patchset contains two commits which enhancing ethdev telemetry. >> >> Chengwen Feng (2): >> ethdev: support telemetry RSS algorithm >> ethdev: support hide zero when telemetry regs >> >> lib/ethdev/rte_ethdev_telemetry.c | 56 ++++++++++++++++++++++--------- >> 1 file changed, 40 insertions(+), 16 deletions(-) >> > > Queued to next-net > > Does the documentation need updating? or a release note? Currently there are no telemetry document. Maybe we need add one telemetry section in eal/ethdev/crypto/eventdev/dmadev rst. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-10-29 0:56 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-10-25 9:42 [PATCH 0/2] enhance ethdev telemetry Chengwen Feng 2025-10-25 9:42 ` [PATCH 1/2] ethdev: support telemetry RSS algorithm Chengwen Feng 2025-10-25 9:42 ` [PATCH 2/2] ethdev: support hide zero when telemetry regs Chengwen Feng 2025-10-27 16:29 ` Stephen Hemminger 2025-10-28 13:46 ` [PATCH 0/2] enhance ethdev telemetry Stephen Hemminger 2025-10-29 0:56 ` fengchengwen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).