From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 731CCA0562; Mon, 30 Mar 2020 02:43:48 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 339C11AFF; Mon, 30 Mar 2020 02:43:48 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 043053B5 for ; Mon, 30 Mar 2020 02:43:45 +0200 (CEST) IronPort-SDR: St+i8wHjJEm4B8TUR0fdBzyjYcYTFa34a95H2J68Y7Kr+xuIQYMYUa2sMTjcdm+MmRyIUKDrSQ nPDOAd0pWdBg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2020 17:43:44 -0700 IronPort-SDR: J4t0xGIozQbHJ8LCjZncwb/gGwDRc7TTEimYu7b2vuFJZP6kgy4NP8xmGhJz8Bh5YYBWE2SOwQ UvOJgVAb14gA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,322,1580803200"; d="scan'208";a="359026383" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga001.fm.intel.com with ESMTP; 29 Mar 2020 17:43:44 -0700 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 29 Mar 2020 17:43:44 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by SHSMSX606.ccr.corp.intel.com (10.109.6.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 30 Mar 2020 08:43:41 +0800 Received: from shsmsx603.ccr.corp.intel.com ([10.109.6.143]) by SHSMSX603.ccr.corp.intel.com ([10.109.6.143]) with mapi id 15.01.1713.004; Mon, 30 Mar 2020 08:43:41 +0800 From: "Wang, Yinan" To: "Tu, Lijuan" , "dts@dpdk.org" Thread-Topic: [dts] [PATCH v1] test_plans: add vdev_primary_secondary hotplug test case Thread-Index: AQHWAXictVib+vuH6ESVZvUFUvpHXahXTnmAgAkHFaA= Date: Mon, 30 Mar 2020 00:43:41 +0000 Message-ID: References: <20200323180112.6172-1-yinan.wang@intel.com> <8CE3E05A3F976642AAB0F4675D0AD20E0BBF0A7B@SHSMSX101.ccr.corp.intel.com> In-Reply-To: <8CE3E05A3F976642AAB0F4675D0AD20E0BBF0A7B@SHSMSX101.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH v1] test_plans: add vdev_primary_secondary hotplug test case X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" HI Qimai, Could you help to add automation for below virtio new cases ? BR, Yinan > -----Original Message----- > From: Tu, Lijuan > Sent: 2020=1B$BG/=1B(B3=1B$B7n=1B(B24=1B$BF|=1B(B 14:52 > To: Wang, Yinan ; dts@dpdk.org > Cc: Wang, Yinan > Subject: RE: [dts] [PATCH v1] test_plans: add vdev_primary_secondary hotp= lug > test case >=20 > Applied, thanks >=20 > > -----Original Message----- > > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Yinan > > Sent: Tuesday, March 24, 2020 2:01 AM > > To: dts@dpdk.org > > Cc: Wang, Yinan > > Subject: [dts] [PATCH v1] test_plans: add vdev_primary_secondary > > hotplug test case > > > > From: Wang Yinan > > > > Signed-off-by: Wang Yinan > > --- > > .../vdev_primary_secondary_test_plan.rst | 132 > +++++++++++++++--- > > 1 file changed, 112 insertions(+), 20 deletions(-) > > > > diff --git a/test_plans/vdev_primary_secondary_test_plan.rst > > b/test_plans/vdev_primary_secondary_test_plan.rst > > index bbea632..8cb1405 100644 > > --- a/test_plans/vdev_primary_secondary_test_plan.rst > > +++ b/test_plans/vdev_primary_secondary_test_plan.rst > > @@ -1,4 +1,4 @@ > > -.. Copyright (c) <2016>, Intel Corporation > > +.. Copyright (c) <2020>, Intel Corporation > > All rights reserved. > > > > Redistribution and use in source and binary forms, with or without > > @@ - > > 30,12 +30,12 @@ > > ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > > ADVISED > > OF THE POSSIBILITY OF SUCH DAMAGE. > > > > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > -Primary/secondary process with vdev test plan - > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > +Virtio-pmd primary/secondary process test plan > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > -This test plan will test vdev primary/secondary by symmetric > > multi-process example, which demonstrates how a set of processes can > > run in parallel, - with each process performing the same set of packet > processing operations. > > +This test plan will test vdev primary/secondary with symmetric_mp, > > +which demonstrates how a set of processes can run in parallel, with > > +each > > process performing the same set of packet processing operations. Also > > test vdev primary/secondary with hotplug_mp example. > > > > Symmetric MP Application Description > > ------------------------------------ > > @@ -88,8 +88,37 @@ To run only 1 or 2 instances, the above parameters > > to the 1 or 2 instances being run should remain the same, except for > > the ``num- procs`` value, which should be adjusted appropriately. > > > > -Test Case 1: Virtio primary and secondary process test - > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > > +Hotplug MP Application Description > > +---------------------------------- > > + > > +Currently secondary process will only sync ethdev from primary > > +process at init stage, but it will not be aware if device is > > +attached/detached on primary process at runtime. > > + > > +While there is the requirement from application that take > > +primary-secondary process model. The primary process work as a > > +resource management process, it will create/destroy virtual device at > > +runtime, while the secondary process deal with the network stuff with = these > devices. > > + > > +So the orignial intention is to fix this gap, but beyond that the > > +patch set provide a more comprehesive solution to handle different > > +hotplug cases in multi-process situation, it cover below scenario: > > + > > +* Attach a device from the primary > > +* Detach a device from the primary > > +* Attach a device from a secondary > > +* Detach a device from a secondary > > + > > +In primary-secondary process model, we assume ethernet devices are > > +shared by default, that means attach or detach a device on any > > +process will broadcast to all other processes through mp channel then > > +device information will be synchronized on all processes. > > + > > +Any failure during attaching process will cause inconsistent status > > +between processes, so proper rollback action should be considered. > > + > > +Test Case 1: Virtio-pmd primary and secondary process symmetric test > > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > =3D=3D=3D=3D=3D > > > > SW preparation: Change one line of the symmetric_mp sample and rebuild= :: > > > > @@ -104,15 +133,17 @@ SW preparation: Change one line of the > > symmetric_mp sample and rebuild:: > > > > 2. Launch VM with two virtio ports, must set queues=3D2 as app receive > > packets from special queue which index same with proc-id:: > > > > - qemu-system-x86_64 -name us-vhost-vm \ > > - -cpu host -enable-kvm -m 4096 -object memory-backend- > > file,id=3Dmem,size=3D4096M,mem-path=3D/mnt/huge,share=3Don -numa > > node,memdev=3Dmem -mem-prealloc \ > > - -smp cores=3D4,sockets=3D1 -drive file=3D/home/osimg/ubuntu16.img= \ > > - -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net > > nic,vlan=3D2,macaddr=3D00:00:00:08:e8:aa,addr=3D1f -net > > user,vlan=3D2,hostfwd=3Dtcp:127.0.0.1:6002-:22 \ > > - -chardev socket,id=3Dchar,path=3D./vhost-net,server -netdev type= =3Dvhost- > > user,id=3Dmynet1,chardev=3Dchar,vhostforce,queues=3D2 \ > > - -device virtio-net- > > pci,mac=3D52:54:00:00:00:02,netdev=3Dmynet1,mrg_rxbuf=3Don,csum=3Don,mq= =3Don,v > > ectors=3D15 \ > > - -chardev socket,id=3Dchar1,path=3D./vhost-net1,server -netdev typ= e=3Dvhost- > > user,id=3Dmynet2,chardev=3Dchar1,vhostforce,queues=3D2 \ > > - -device virtio-net- > > pci,mac=3D52:54:00:00:00:03,netdev=3Dmynet2,mrg_rxbuf=3Don,csum=3Don,mq= =3Don,v > > ectors=3D15 \ > > - -vnc :10 -daemonize > > + qemu-system-x86_64 -name vm1 -enable-kvm -cpu host -smp 4 -m 4096 > \ > > + -object memory-backend-file,id=3Dmem,size=3D4096M,mem- > > path=3D/mnt/huge,share=3Don \ > > + -numa node,memdev=3Dmem -mem-prealloc -drive > > file=3D/home/osimg/ubuntu16.img \ > > + -chardev socket,path=3D/tmp/vm2_qga0.sock,server,nowait,id=3Dvm2_q= ga0 > > + - > > device virtio-serial \ > > + -device > > + virtserialport,chardev=3Dvm2_qga0,name=3Dorg.qemu.guest_agent.2 > > -daemonize \ > > + -monitor unix:/tmp/vm2_monitor.sock,server,nowait -device > > e1000,netdev=3Dnttsip1 \ > > + -netdev user,id=3Dnttsip1,hostfwd=3Dtcp:127.0.0.1:6002-:22 \ > > + -chardev socket,id=3Dchar,path=3D./vhost-net,server -netdev > > + type=3Dvhost- > > user,id=3Dmynet1,chardev=3Dchar,vhostforce,queues=3D2 \ > > + -device virtio-net- > > pci,mac=3D52:54:00:00:00:02,netdev=3Dmynet1,mrg_rxbuf=3Don,csum=3Don,mq= =3Don,v > > ectors=3D15 \ > > + -chardev socket,id=3Dchar1,path=3D./vhost-net1,server -netdev > > + type=3Dvhost- > > user,id=3Dmynet2,chardev=3Dchar1,vhostforce,queues=3D2 \ > > + -device > > + virtio-net- > > pci,mac=3D52:54:00:00:00:03,netdev=3Dmynet2,mrg_rxbuf=3Don,csum=3Do > > + n,mq=3Don,vectors=3D15 -vnc :10 -daemonize > > > > 3. Bind virtio port to igb_uio:: > > > > @@ -121,10 +152,71 @@ SW preparation: Change one line of the > > symmetric_mp sample and rebuild:: > > > > 4. Launch two process by example:: > > > > - examples/multi_process/symmetric_mp -l 1 -n 4 --proc-type=3Dauto -= - -p 3 > - > > -num-procs=3D2 --proc-id=3D0 > > - examples/multi_process/symmetric_mp -l 2 -n 4 --proc-type=3Dsecond= ary > -- > > -p 3 --num-procs=3D2 --proc-id=3D1 > > + ./examples/multi_process/symmetric_mp/build/symmetric_mp -l 1 -n > > + 4 - > > -proc-type=3Dauto -- -p 3 --num-procs=3D2 --proc-id=3D0 > > + ./examples/multi_process/symmetric_mp/build/symmetric_mp -l 2 -n > > + 4 --proc-type=3Dsecondary -- -p 3 --num-procs=3D2 --proc-id=3D1 > > > > 5. Quit all process, check the packets number in rx/tx statistic like > > below for both primary process and secondary process:: > > > > Port 0: RX - 27511680, TX - 256, Drop - 27499168 > > - Port 1: RX - 27499424, TX - 256, Drop - 27511424 > > \ No newline at end of file > > + Port 1: RX - 27499424, TX - 256, Drop - 27511424 > > + > > +Test Case 2: Virtio-pmd primary and secondary process hotplug test > > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > =3D=3D=3D > > + > > +1. Launch testpmd by below command:: > > + > > + ./testpmd -l 1-6 -n 4 --socket-mem 2048,2048 --legacy-mem --file- > > prefix=3Dvhost --vdev 'net_vhost,iface=3Dvhost-net,queues=3D2,client=3D= 1' > > --vdev 'net_vhost1,iface=3Dvhost-net1,queues=3D2,client=3D1' -- -i > > --nb-cores=3D4 --rxq=3D2 -- > > txq=3D2 --txd=3D1024 --rxd=3D1024 > > + testpmd>set fwd txonly > > + testpmd>start > > + > > +2. Launch VM with two virtio ports, must set queues=3D2 as app receive > > packets from special queue which index same with proc-id:: > > + > > + qemu-system-x86_64 -name vm1 -enable-kvm -cpu host -smp 4 -m 4096 > \ > > + -object memory-backend-file,id=3Dmem,size=3D4096M,mem- > > path=3D/mnt/huge,share=3Don \ > > + -numa node,memdev=3Dmem -mem-prealloc -drive > > file=3D/home/osimg/ubuntu16.img \ > > + -chardev socket,path=3D/tmp/vm2_qga0.sock,server,nowait,id=3Dvm2_q= ga0 > > + - > > device virtio-serial \ > > + -device > > + virtserialport,chardev=3Dvm2_qga0,name=3Dorg.qemu.guest_agent.2 > > -daemonize \ > > + -monitor unix:/tmp/vm2_monitor.sock,server,nowait -device > > e1000,netdev=3Dnttsip1 \ > > + -netdev user,id=3Dnttsip1,hostfwd=3Dtcp:127.0.0.1:6002-:22 \ > > + -chardev socket,id=3Dchar,path=3D./vhost-net,server -netdev > > + type=3Dvhost- > > user,id=3Dmynet1,chardev=3Dchar,vhostforce,queues=3D2 \ > > + -device virtio-net- > > pci,mac=3D52:54:00:00:00:02,netdev=3Dmynet1,mrg_rxbuf=3Don,csum=3Don,mq= =3Don,v > > ectors=3D15 \ > > + -chardev socket,id=3Dchar1,path=3D./vhost-net1,server -netdev > > + type=3Dvhost- > > user,id=3Dmynet2,chardev=3Dchar1,vhostforce,queues=3D2 \ > > + -device > > + virtio-net- > > pci,mac=3D52:54:00:00:00:03,netdev=3Dmynet2,mrg_rxbuf=3Don,csum=3Do > > + n,mq=3Don,vectors=3D15 -vnc :10 -daemonize > > + > > +3. Bind virtio port to igb_uio:: > > + > > + ./usertools/dpdk-devbind.py --bind=3Digb_uio xx:xx.x > > + ./usertools/dpdk-devbind.py --bind=3Digb_uio xx:xx.x > > + > > +4. Start sample code as primary process:: > > + > > + ./examples/multi_process/hotplug_mp/build/hotplug_mp --proc- > > type=3Dauto -- -p 3 --num-procs=3D2 --proc-id=3D0 > > + example> list > > + list all etherdev > > + 0 0000:00:05.0 > > + 1 0000:00:06.0 > > + > > +5. Start sample code as secondary process:: > > + > > + ./examples/multi_process/hotplug_mp/build/hotplug_mp --proc- > > type=3Dsecondary -- -p 3 --num-procs=3D2 --proc-id=3D1 > > + example> list > > + list all etherdev > > + 0 0000:00:05.0 > > + 1 0000:00:06.0 > > + > > +6. Detach the virtual device from primary, check primary and > > +secondary > > processes detach the share device successfully:: > > + > > + example> detach 0000:00:05.0 > > + example> list > > + list all etherdev > > + 1 0000:00:06.0 > > + > > +7. Attach a virtual device from secondary, check primary and > > +secondary > > processes attach the share device successfully:: > > + > > + example> attach 0000:00:05.0 > > + example> list > > + list all etherdev > > + 0 0000:00:05.0 > > + 1 0000:00:06.0 > > + > > +8. Repeat above attach and detach for 2 times. > > -- > > 2.17.1