From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 79B282B96 for ; Wed, 5 Jul 2017 07:48:54 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jul 2017 22:48:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,310,1496127600"; d="scan'208";a="282213364" Received: from pgsmsx108.gar.corp.intel.com ([10.221.44.103]) by fmsmga004.fm.intel.com with ESMTP; 04 Jul 2017 22:48:53 -0700 Received: from pgsmsx106.gar.corp.intel.com ([169.254.9.158]) by PGSMSX108.gar.corp.intel.com ([10.221.44.103]) with mapi id 14.03.0319.002; Wed, 5 Jul 2017 13:48:52 +0800 From: "Dai, Wei" To: "Wu, Jingjing" , "thomas@monjalon.net" , "Lu, Wenzhuo" , "Ananyev, Konstantin" , "Zhang, Helin" , "Peng, Yuan" CC: "dev@dpdk.org" Thread-Topic: [PATCH v5 0/4] Support NIC reset and keep same port id Thread-Index: AQHS8YrZ5543/TU1uUmnoXm1ZhsYDKI8tBSAgAgLgzA= Date: Wed, 5 Jul 2017 05:48:51 +0000 Message-ID: <49759EB36A64CF4892C1AFEC9231E8D650B5DE54@PGSMSX106.gar.corp.intel.com> References: <1498748282-69914-1-git-send-email-wei.dai@intel.com> <1498817556-64379-1-git-send-email-wei.dai@intel.com> <9BB6961774997848B5B42BEC655768F810DB77C8@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <9BB6961774997848B5B42BEC655768F810DB77C8@SHSMSX103.ccr.corp.intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNjUxOGMyYjctNDMxYy00ZGQxLTg3MTItNWRjMzVmMDAzNmFmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IllpT3VlbWthcXNhckpJSFwvXC9rXC9BQ2ZCbkZyNlFJb215QnRQOTNlazRyRmc9In0= x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [172.30.20.205] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v5 0/4] Support NIC reset and keep same port id X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Jul 2017 05:48:56 -0000 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=20 Sent: Friday, June 30, 2017 6:50 PM To: Dai, Wei ; thomas@monjalon.net; Lu, Wenzhuo ; Ananyev, Konstantin ; Zhang, = Helin ; Peng, Yuan Cc: dev@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@monjalon.net; Lu, Wenzhuo ; Ananyev,=20 > Konstantin ; Wu, Jingjing=20 > ; Zhang, Helin ; Peng,=20 > Yuan > Cc: dev@dpdk.org; Dai, Wei > Subject: [PATCH v5 0/4] Support NIC reset and keep same port id >=20 > Sometimes a port have to be reset. For example PF is reset, all its VF=20 > should also be reset. After reset, if the port goes through PCI=20 > remove() and then PCI probe() for restoration, its port id may be=20 > changed and this is not expected by some customer DPDK application. > Normally, PCI probe() includes two parts: one is in rte_ethdev layer=20 > and the other is calling PMD dev_init(). PCI remove( ) release all=20 > resource allocated from rte_ethdev layer in PCI probe( ) and calls PMD=20 > dev_unit( ). > To keep same port id and reset the port, only dev_uninit() and=20 > dev_init( ) in PMD can be called and keep all resources allocated from=20 > rte_ethdev layer poart in PCI probe( ). >=20 > New rte_eth_dev_reset( ) calls rte_eth_dev_stop( ), PMD dev_uninit( )=20 > and then PMD dev_init( ) to reset a port and keep same port id. > And then application can go through rte_eth_dev_configure( ),=20 > rte_eth_rx_queue_setup( ), rte_eth_tx_queue_setup( ) and=20 > rte_eth_dev_start( ) again to restore its previous settings or to=20 > reconfigure itself with different settings. >=20 > 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=20 > to confirm its port number is kept. > And following test case can also be used to confirm the port can work=20 > again after reset. >=20 > 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=20 > > set verbose 1 //to observe VF working 3. testpmd > show port info=20 > all //show port number and MAC addr 4. testpmd > start 5. let all=20 > ports forwarding work for a while 6. testpmd > show port stats all 7. =20 > ifconfig name-of-PF down 8. A message is shown in testmd to indicate=20 > PF reset 9. ifconfig name-of-PF up 10. testpmd > stop // stop=20 > forwarding to avoid crash during reset 11. testpmd > port reset all=20 > 12. testpmd > port stop all 13. testpmd > port start all //recofnig=20 > all ports 14. testpmd > show port info all > //get mapping of port id and MAC addr for forwarding 15. testpmd >=20 > start // restore forwarding 14. let all ports forwarding work for a=20 > while 15. testpmd > show port stats all //confirm all port can work=20 > again 16. repeat above step 7 - 15 >=20 > 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=20 > 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 >=20 > Signed-off-by: Wei Dai > Tested-by: Yuan Peng Acked-by: Jingjing Wu