[dpdk-dev] [PATCH] net/ixgbevf: reset hardware whenstoppingport

Olivier Matz olivier.matz at 6wind.com
Fri Feb 24 11:42:56 CET 2017


Hi Fengtian,

On Fri, 24 Feb 2017 18:15:27 +0800, "fengtian Guo"
<fengtian.guo at 6wind.com> wrote:
> Hi, Wenzhuo
> 
> The attachment is test report without product.

The test report uses is a use-case with 6WINDGate, so it cannot be
reproduced by Intel guys.

I'll see how to reproduce the same case with testpmd and send an
update.

Thanks,
Olivier





> 
>  
> ------------------ Original ------------------
> From:  "Lu, Wenzhuo"<wenzhuo.lu at intel.com>;
> Date:  Fri, Feb 24, 2017 04:54 PM
> To:  "fengtian Guo"<fengtian.guo at 6wind.com>; "Olivier
> Matz"<olivier.matz at 6wind.com>; "dev at dpdk.org"<dev at dpdk.org>; "Zhang,
> Helin"<helin.zhang at intel.com>; "Ananyev,
> Konstantin"<konstantin.ananyev at intel.com>; Cc:
> "stable at dpdk.org"<stable at dpdk.org>; "David
> Marchand"<david.marchand at 6wind.com>; Subject:  RE: Re:RE: [dpdk-dev]
> [PATCH] net/ixgbevf: reset hardware whenstoppingport
> 
>  
>   
> Hi Fengtian,
>  
> Would you like to let us know how you validate this patch? As I’ve
> tried just stop -> start VF  can make it work again after PF down ->
> up. Thanks. 
>  
>  
>     
> From: fengtian.guo at 6wind.com.cn [mailto:fengtian.guo at 6wind.com.cn] On
> Behalf Of fengtian Guo Sent: Friday, February 24, 2017 4:47 PM
>  To: Lu, Wenzhuo; Olivier Matz; dev at dpdk.org; Zhang, Helin; Ananyev,
> Konstantin Cc: stable at dpdk.org; David Marchand
>  Subject: Re:RE: [dpdk-dev] [PATCH] net/ixgbevf: reset hardware when
> stoppingport 
>  
>  
>  
>  
> Hi, Wenzhuo
>  
>  Sorry, Now I just notice the email is related with me.
>  
>  > Seems the commit log doesn't match the code change.
>  > This change cannot resolve the described problem. The problem is
>  > VF doesn't handle the PF reset event. Moving the hw_reset from
>  > close to stop doesn't help and not necessary. Because PF has
>  > already reset VF stuff during resetting itself, that's why VF not
>  > working anymore.  
>  
>  Explain the problem of this issue.
>  1) it seems VF have to call ixgbe_reset_hw() when it receive PF
> reset event. it seems VF is client and PF is server and VF has to
> reset the register on his side, after PF has reset the register on
> his side. 2) with this patch, when VF receive the event after PF is
> set link down, it will call ixgbe_reset_hw() in ixgbevf_dev_close().
> and we have validate this patch 
>  
>  Thanks
>  Fengtian
>    
>  
>  
>   
>  
>  
>    
> ------------------ Original ------------------
>  
>    
> From:  "Lu, Wenzhuo"<wenzhuo.lu at intel.com>;
>  
>   
> Date:  Fri, Feb 24, 2017 01:21 PM
>  
>   
> To:  "Olivier Matz"<olivier.matz at 6wind.com>;
> "dev at dpdk.org"<dev at dpdk.org>; "Zhang, Helin"<helin.zhang at intel.com>;
> "Ananyev, Konstantin"<konstantin.ananyev at intel.com>; 
> Cc:  "Guo Fengtian"<fengtian.guo at 6wind.com>;
> "stable at dpdk.org"<stable at dpdk.org>; "David
> Marchand"<david.marchand at 6wind.com>; 
> Subject:  RE: [dpdk-dev] [PATCH] net/ixgbevf: reset hardware when
> stoppingport 
>  
>   
>  
>  
>  
> Hi Olivier, Fengtian,
>  
>  
>  > -----Original Message-----
>  > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Olivier Matz
>  > Sent: Thursday, January 12, 2017 12:52 AM
>  > To: dev at dpdk.org; Zhang, Helin; Ananyev, Konstantin
>  > Cc: Guo Fengtian; stable at dpdk.org; David Marchand
>  > Subject: [dpdk-dev] [PATCH] net/ixgbevf: reset hardware when
>  > stopping port
>  > 
>  > From: Guo Fengtian <fengtian.guo at 6wind.com>
>  > 
>  > When PF triggers a reset, VF port must acknowledge it by calling
>  > ixgbe_reset_hw().
>  > 
>  > Before this patch, the port link status, speed and duplex are
>  > invalid (all set to 0).
>  > 
>  > The patch move the call to ixgbe_reset_hw() from
>  > ixgbevf_dev_close() to ixgbevf_dev_stop(), so that after a port
>  > restart on the VM, the link status is properly marked down, with
>  > correct speed and duplex.
>  > 
>  > Fixes: f0160874c041 ("ixgbe: various updates")
>  > 
>  > CC: stable at dpdk.org
>  > Signed-off-by: Guo Fengtian <fengtian.guo at 6wind.com>
>  > Signed-off-by: David Marchand <david.marchand at 6wind.com>
>  > Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
>  > ---
>  > 
>  > Hi,
>  > 
>  > The use case for this problem was described some time ago, see:
>  > http://dpdk.org/ml/archives/dev/2015-December/030067.html
>  > 
>  > It is also part of 2.2 release note:
>  >  http://dpdk.org/browse/dpdk/tree/doc/guides/rel_notes/release_2_2.rst#n4
>  > 71
>  > 
>  > Regards,
>  > Olivier  
>  Seems the commit log doesn't match the code change.
>  This change cannot resolve the described problem. The problem is VF
> doesn't handle the PF reset event. Moving the hw_reset from close to
> stop doesn't help and not necessary. Because PF has already reset VF
> stuff during  resetting itself, that's why VF not working anymore. 
>  > 
>  > 
>  >  drivers/net/ixgbe/ixgbe_ethdev.c | 5 +----
>  >  1 file changed, 1 insertion(+), 4 deletions(-)
>  > 
>  > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
>  > b/drivers/net/ixgbe/ixgbe_ethdev.c
>  > index b7ddd4f..2d8641a 100644
>  > --- a/drivers/net/ixgbe/ixgbe_ethdev.c
>  > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>  > @@ -4268,6 +4268,7 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
>  >  PMD_INIT_FUNC_TRACE();
>  > 
>  >  ixgbevf_intr_disable(hw);
>  > + ixgbe_reset_hw(hw);
>  > 
>  >  hw->adapter_stopped = 1;
>  >  ixgbe_stop_adapter(hw);
>  > @@ -4294,12 +4295,8 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
>  > static void  ixgbevf_dev_close(struct rte_eth_dev *dev)  {
>  > - struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-  
>  > >dev_private);  
>  > -
>  >  PMD_INIT_FUNC_TRACE();
>  > 
>  > - ixgbe_reset_hw(hw);
>  > -
>  >  ixgbevf_dev_stop(dev);
>  > 
>  >  ixgbe_dev_free_queues(dev);
>  > --
>  > 2.8.  



More information about the dev mailing list