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.

Reply via email to