[dpdk-dev] [PATCH v2] net/ixgbe: fix ixgbevf link status

Zhang, Qi Z qi.z.zhang at intel.com
Tue Nov 13 20:27:56 CET 2018



> -----Original Message-----
> From: Wu, Yanglong
> Sent: Monday, November 12, 2018 10:35 PM
> To: dev at dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang at intel.com>; Xu, Rosen <rosen.xu at intel.com>;
> Wang, Dong1 <dong1.wang at intel.com>; Wu, Yanglong
> <yanglong.wu at intel.com>
> Subject: [PATCH v2] net/ixgbe: fix ixgbevf link status
> 
> For ixgbevf kernel driver, link status changes from down to up will trigger vf
> kernel driver send IXGBE_VF_RESET message to pf kernel driver, after this, vf
> kernel driver will disable and enable it self. By these series operations, the vf
> kernel driver report link up. Besides, all these operations handles in kernel
> thread.
> For DPDK user space driver, it only gets link status changes from down to up,
> but miss IXGBE_VF_RESET message sending and reset itself.
> If we will add fully implementation of link status change for DPDK user space
> driver, we need take much more modification. We have aligned that for link
> status changes from down to up we only notify link is up, users need to reset
> vf port.
> 
> Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")
> 
> Signed-off-by: Rosen Xu <rosen.xu at intel.com>
> Signed-off-by: Yanglong Wu <yanglong.wu at intel.com>

Acked-by: Qi Zhang <qi.z.zhang at intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi

> ---
> v2
> change as comments
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 15 +--------------
>  1 file changed, 1 insertion(+), 14 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 8148577f5..91ba6201d 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -3880,11 +3880,6 @@ static int
>  ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
>  		   int *link_up, int wait_to_complete)  {
> -	/**
> -	 * for a quick link status checking, wait_to_compelet == 0,
> -	 * skip PF link status checking
> -	 */
> -	bool no_pflink_check = wait_to_complete == 0;
>  	struct ixgbe_mbx_info *mbx = &hw->mbx;
>  	struct ixgbe_mac_info *mac = &hw->mac;
>  	uint32_t links_reg, in_msg;
> @@ -3945,14 +3940,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw,
> ixgbe_link_speed *speed,
>  		*speed = IXGBE_LINK_SPEED_UNKNOWN;
>  	}
> 
> -	if (no_pflink_check) {
> -		if (*speed == IXGBE_LINK_SPEED_UNKNOWN)
> -			mac->get_link_status = true;
> -		else
> -			mac->get_link_status = false;
> -
> -		goto out;
> -	}
>  	/* if the read failed it could just be a mailbox collision, best wait
>  	 * until we are called again and don't report an error
>  	 */
> @@ -3962,7 +3949,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw,
> ixgbe_link_speed *speed,
>  	if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
>  		/* msg is not CTS and is NACK we must have lost CTS status */
>  		if (in_msg & IXGBE_VT_MSGTYPE_NACK)
> -			ret_val = -1;
> +			mac->get_link_status = false;
>  		goto out;
>  	}
> 
> --
> 2.11.0



More information about the dev mailing list