[dpdk-stable] [dpdk-dev] [PATCH] ethdev: avoid blocking telemetry callback for link status

Min Hu (Connor) humin29 at huawei.com
Tue Jan 19 02:06:48 CET 2021


Hi, Bruce and all,
	Do you know the difference between "rte_eth_link_get" and
"rte_eth_link_get_nowait"? I know they call funciton "link_update"
with differenct parameter "wait_to_complete"(set 1 means wait, set 0
  means not wait). But how to define the "wait" time, and why it shoud wait?
	On the further, What are the application scenarios of the two
APIs?

	Look forward to your reply, thanks.

在 2021/1/14 20:17, Bruce Richardson 写道:
> When querying the link status via telemetry interface, we don't want the
> client to have to wait for multiple seconds for a reply. Therefore use
> "rte_eth_link_get_nowait()" rather than "rte_eth_link_get()" in the
> telemetry callback.
> 
> Cc: stable at dpdk.org
> Fixes: c190daedb9b1 ("ethdev: add telemetry callbacks")
> 
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> ---
>   lib/librte_ethdev/rte_ethdev.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
> index 17ddacc78..1f4545fe0 100644
> --- a/lib/librte_ethdev/rte_ethdev.c
> +++ b/lib/librte_ethdev/rte_ethdev.c
> @@ -5692,7 +5692,7 @@ eth_dev_handle_port_link_status(const char *cmd __rte_unused,
>   	if (!rte_eth_dev_is_valid_port(port_id))
>   		return -1;
>   
> -	ret = rte_eth_link_get(port_id, &link);
> +	ret = rte_eth_link_get_nowait(port_id, &link);
>   	if (ret < 0)
>   		return -1;
>   
> 


More information about the stable mailing list