On 9/16/21 11:16 AM, Min Hu (Connor) wrote: > Hi, Andrew, > > 在 2021/9/16 14:22, Andrew Rybchenko 写道: >> On 9/16/21 5:56 AM, Min Hu (Connor) wrote: >>> Currently, link speed to string only supports specific speeds, like 10M, >>> 100M, 1G etc. >>> >>> This patch expands support for any link speed which is over 1M and one >>> decimal place will kept for display at most. >>> >>> Signed-off-by: Min Hu (Connor) <humi...@huawei.com> >>> --- >>> lib/ethdev/rte_ethdev.c | 34 +++++++++++++++++----------------- >>> 1 file changed, 17 insertions(+), 17 deletions(-) >>> >>> diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c >>> index daf5ca9242..1d3b960305 100644 >>> --- a/lib/ethdev/rte_ethdev.c >>> +++ b/lib/ethdev/rte_ethdev.c >>> @@ -2750,24 +2750,24 @@ rte_eth_link_get_nowait(uint16_t port_id, >>> struct rte_eth_link *eth_link) >>> const char * >>> rte_eth_link_speed_to_str(uint32_t link_speed) >>> { >>> - switch (link_speed) { >>> - case ETH_SPEED_NUM_NONE: return "None"; >>> - case ETH_SPEED_NUM_10M: return "10 Mbps"; >>> - case ETH_SPEED_NUM_100M: return "100 Mbps"; >>> - case ETH_SPEED_NUM_1G: return "1 Gbps"; >>> - case ETH_SPEED_NUM_2_5G: return "2.5 Gbps"; >>> - case ETH_SPEED_NUM_5G: return "5 Gbps"; >>> - case ETH_SPEED_NUM_10G: return "10 Gbps"; >>> - case ETH_SPEED_NUM_20G: return "20 Gbps"; >>> - case ETH_SPEED_NUM_25G: return "25 Gbps"; >>> - case ETH_SPEED_NUM_40G: return "40 Gbps"; >>> - case ETH_SPEED_NUM_50G: return "50 Gbps"; >>> - case ETH_SPEED_NUM_56G: return "56 Gbps"; >>> - case ETH_SPEED_NUM_100G: return "100 Gbps"; >>> - case ETH_SPEED_NUM_200G: return "200 Gbps"; >>> - case ETH_SPEED_NUM_UNKNOWN: return "Unknown"; >>> - default: return "Invalid"; >>> +#define SPEED_STRING_LEN 16 >>> + static char name[SPEED_STRING_LEN]; >> >> NACK >> >> Nothing good will happen if you try to use the function to >> print two different link speeds in one log message. > You are right. > And use malloc for "name" will result in memory leakage, which is also > not a good option. > > BTW, do you think if we need to modify the function > "rte_eth_link_speed_to_str"?
IMHO it would be more pain than gain in this case.