Hi, Thomas

Would you please have a look at this patch set ?
If any question,  please let me know .

Thanks
-Wei


-----Original Message-----
From: Wu, Jingjing 
Sent: Friday, June 30, 2017 6:50 PM
To: Dai, Wei <[email protected]>; [email protected]; Lu, Wenzhuo 
<[email protected]>; Ananyev, Konstantin <[email protected]>; 
Zhang, Helin <[email protected]>; Peng, Yuan <[email protected]>
Cc: [email protected]
Subject: RE: [PATCH v5 0/4] Support NIC reset and keep same port id



> -----Original Message-----
> From: Dai, Wei
> Sent: Friday, June 30, 2017 6:13 PM
> To: [email protected]; Lu, Wenzhuo <[email protected]>; Ananyev, 
> Konstantin <[email protected]>; Wu, Jingjing 
> <[email protected]>; Zhang, Helin <[email protected]>; Peng, 
> Yuan <[email protected]>
> Cc: [email protected]; Dai, Wei <[email protected]>
> Subject: [PATCH v5 0/4] Support NIC reset and keep same port id
> 
> Sometimes a port have to be reset. For example PF is reset, all its VF 
> should also be reset. After reset, if the port goes through PCI 
> remove() and then PCI probe() for restoration, its port id may be 
> changed and this is not expected by some customer DPDK application.
> Normally, PCI probe() includes two parts: one is in rte_ethdev layer 
> and the other is calling PMD dev_init(). PCI remove( ) release all 
> resource allocated from rte_ethdev layer in PCI probe( ) and calls PMD 
> dev_unit( ).
> To keep same port id and reset the port, only dev_uninit() and 
> dev_init( ) in PMD can be called and keep all resources allocated from 
> rte_ethdev layer poart in PCI probe( ).
> 
> New rte_eth_dev_reset( ) calls rte_eth_dev_stop( ), PMD dev_uninit( ) 
> and then PMD dev_init( ) to reset a port and keep same port id.
> And then application can go through rte_eth_dev_configure( ), 
> rte_eth_rx_queue_setup( ), rte_eth_tx_queue_setup( ) and 
> rte_eth_dev_start( ) again to restore its previous settings or to 
> reconfigure itself with different settings.
> 
> To test this new feature, a testpmd command "port reset port_id" is added.
> The mapping between port number and its PCI address can be monitored 
> to confirm its port number is kept.
> And following test case can also be used to confirm the port can work 
> again after reset.
> 
> A typical test steps are listed as follows:
> For example, run "ifconfig PF-name down" will trigger a reset to VF.
> 1.  run testpmd with 2 ixgbe VF ports belonging to same PF 2.  testpmd 
> > set verbose 1 //to observe VF working 3.  testpmd > show port info 
> all //show port number and MAC addr 4.  testpmd > start 5.  let all 
> ports forwarding work for a while 6.  testpmd > show port stats all 7.  
> ifconfig name-of-PF down 8.  A message is shown in testmd to indicate 
> PF reset 9.  ifconfig name-of-PF up 10. testpmd > stop // stop 
> forwarding to avoid crash during reset 11. testpmd > port reset all 
> 12. testpmd > port stop all 13. testpmd > port start all //recofnig 
> all ports 14. testpmd > show port info all
>     //get mapping of port id and MAC addr for forwarding 15. testpmd > 
> start // restore forwarding 14. let all ports forwarding work for a 
> while 15. testpmd > show port stats all //confirm all port can work 
> again 16. repeat above step 7 - 15
> 
> chagnes:
> v5:
>   remove PCI address output to align with other modification which
>     will output it in other way
>   disable PF reset when its VF is ative to avoid unexpected VF 
> behavior
> v4:
>   add PCI address to confirm its port number keep same
>   correct test method in cover letter
> v3:
>   update testpmd command
> v2:
>   only reset PMD layer resource and keep same port id, but
>   not restore settings
> 
> Signed-off-by: Wei Dai <[email protected]>
> Tested-by: Yuan Peng <[email protected]>


Acked-by: Jingjing Wu <[email protected]>

Reply via email to