[dpdk-dev] [PATCH v5 0/4] Support NIC reset and keep same port id
Dai, Wei
wei.dai at intel.com
Wed Jul 5 07:48:51 CEST 2017
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 <wei.dai at intel.com>; thomas at monjalon.net; Lu, Wenzhuo <wenzhuo.lu at intel.com>; Ananyev, Konstantin <konstantin.ananyev at intel.com>; Zhang, Helin <helin.zhang at intel.com>; Peng, Yuan <yuan.peng at intel.com>
Cc: dev at dpdk.org
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: thomas at monjalon.net; Lu, Wenzhuo <wenzhuo.lu at intel.com>; Ananyev,
> Konstantin <konstantin.ananyev at intel.com>; Wu, Jingjing
> <jingjing.wu at intel.com>; Zhang, Helin <helin.zhang at intel.com>; Peng,
> Yuan <yuan.peng at intel.com>
> Cc: dev at dpdk.org; Dai, Wei <wei.dai at intel.com>
> 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 <wei.dai at intel.com>
> Tested-by: Yuan Peng <yuan.peng at intel.com>
Acked-by: Jingjing Wu <jingjing.wu at intel.com>
More information about the dev
mailing list