From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 6464A1B740 for ; Wed, 31 Jan 2018 10:08:37 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 31 Jan 2018 01:08:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,439,1511856000"; d="scan'208";a="200042595" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga005.fm.intel.com with ESMTP; 31 Jan 2018 01:08:35 -0800 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 31 Jan 2018 01:08:35 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 31 Jan 2018 01:08:35 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.145]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.116]) with mapi id 14.03.0319.002; Wed, 31 Jan 2018 17:08:18 +0800 From: "Liu, Yong" To: "Ma, LihongX" , "dts@dpdk.org" CC: "Ma, LihongX" Thread-Topic: [dts] [PATCH V1] Add test plan about muti queue qemu Thread-Index: AQHTmlGHxmWhGz8Q40aMmhE5kvsz/KONrUHQ Date: Wed, 31 Jan 2018 09:08:17 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E62F7E2BE@SHSMSX103.ccr.corp.intel.com> References: <1520016669-4085-1-git-send-email-lihongx.ma@intel.com> In-Reply-To: <1520016669-4085-1-git-send-email-lihongx.ma@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiN2I1M2M4ZmEtZGQzNy00M2YxLTgxYjAtMzA4MWQ5NTU4Zjg4IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJKZkJ4clgzTGp6dTNxbUZ1MVczRzJPU2w0b3l5d2FGT0RseFo0ckhweFwvU0xRMGFjK3l2N1wvOGVkNWRuZmxSd3QifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH V1] Add test plan about muti queue qemu 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: , X-List-Received-Date: Wed, 31 Jan 2018 09:08:40 -0000 Lihong, my comments are inline. Thanks, Marvin > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of lihong > Sent: Saturday, March 03, 2018 2:51 AM > To: dts@dpdk.org > Cc: Ma, LihongX > Subject: [dts] [PATCH V1] Add test plan about muti queue qemu >=20 > Signed-off-by: lihong > --- > test_plans/vhost_multi_queue_qemu_test_plan.rst | 192 > ++++++++++++++++++++++++ > 1 file changed, 192 insertions(+) > create mode 100644 test_plans/vhost_multi_queue_qemu_test_plan.rst >=20 > diff --git a/test_plans/vhost_multi_queue_qemu_test_plan.rst > b/test_plans/vhost_multi_queue_qemu_test_plan.rst > new file mode 100644 > index 0000000..7a05d1a > --- /dev/null > +++ b/test_plans/vhost_multi_queue_qemu_test_plan.rst > @@ -0,0 +1,192 @@ > +.. Copyright (c) <2016>, Intel Corporation > + All rights reserved. > + > + Redistribution and use in source and binary forms, with or without > + modification, are permitted provided that the following conditions > + are met: > + > + - Redistributions of source code must retain the above copyright > + notice, this list of conditions and the following disclaimer. > + > + - Redistributions in binary form must reproduce the above copyright > + notice, this list of conditions and the following disclaimer in > + the documentation and/or other materials provided with the > + distribution. > + > + - Neither the name of Intel Corporation nor the names of its > + contributors may be used to endorse or promote products derived > + from this software without specific prior written permission. > + > + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS > + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE > + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, > + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR > + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > + 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 > +Vhost/Virtio multiple queue qemu 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 > + > +This test plan will cover the vhost/virtio-pmd multiple queue qemu test > case. > +Will use testpmd as the test application. Any prerequisites for this suite? Like 40G or 10G NIC or NIC must on socket= 0?=20 Need special Qemu version or doesn't matter?=20 > + > +Test Case1: DPDK vhost pmd/virtio-pmd PVP 2queues mergeable performance > +=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 > + > +flow: > +TG --> NIC --> Vhost --> Virtio--> Vhost --> NIC --> TG > + > +1. Bind one port to igb_uio, then launch testpmd by below command: > + rm -rf vhost-net* > + ./testpmd -c 0xe -n 4 --socket-mem 1024,1024 \ > + --vdev 'eth_vhost0,iface=3Dvhost-net,queues=3D2' -- \ > + -i --nb-cores=3D2 --rxq=3D2 --txq=3D2 > + testpmd>set fwd mac > + testpmd>start > + > +2. Launch VM1, set queues=3D2, vectors=3D2*queues+2, mq=3Don:: > + Please change the description, "Launch VM with vectors=3D2*queue_num+2 and = mrg_rxbuf/mq feature on."=20 > + qemu-system-x86_64 -name vm1 -cpu host -enable-kvm \ > + -m 2048 -object memory-backend-file,id=3Dmem,size=3D2048M,mem- > path=3D/mnt/huge,share=3Don -numa node,memdev=3Dmem \ > + -mem-prealloc -smp cores=3D3,sockets=3D1 -drive > file=3D/home/osimg/ubuntu16.img \ > + -chardev socket,id=3Dchar0,path=3D./vhost-net \ > + -netdev type=3Dvhost-user,id=3Dmynet1,chardev=3Dchar0,vhostforce,que= ues=3D2 \ > + -device virtio-net- > pci,mac=3D52:54:00:00:00:01,netdev=3Dmynet1,mrg_rxbuf=3Don,mq=3Don,vector= s=3D6 \ > + -netdev tap,id=3Dipvm1,ifname=3Dtap3,script=3D/etc/qemu-ifup -device > rtl8139,netdev=3Dipvm1,id=3Dnet0,mac=3D00:00:00:00:10:01 \ > + -vnc :2 -daemonize > + > +3. On VM1, bind virtio net to igb_uio and run testpmd :: > + ./testpmd -c 0x07 -n 3 -- -i \ > + --rxq=3D2 --txq=3D2 --txqflags=3D0xf01 --rss-ip --nb-cores=3D2 > + testpmd>set fwd mac > + testpmd>start > + > +4. Check the performance for the 2core/2queue for vhost/virtio. > + > +Test Case2: DPDK PVP virtio-pmd queue number dynamic change performance > check > +=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 Could we do functional verification without TG? Thus we can still do functi= onal check in normal environment. > + > +This case is to check if the virtio-pmd can work well when queue number > +dynamic change. In this case, set both vhost-pmd and virtio-pmd max queu= e > +number as 2 queues. Launch vhost-pmd with 2 queues. Launch virtio-pmd > with > +1 queue first then in testpmd, change the number to 2 queues. Expect no > crash > +happened. And after the queue number changes, the virtio-pmd can use 2 > queues > +to RX/TX packets normally.=09 > + > + > +flow: > +TG --> NIC --> Vhost --> Virtio--> Vhost --> NIC --> TG > + > +1. Bind one port to igb_uio, then launch testpmd by below command, > + ensure the vhost using 2 queues: > + rm -rf vhost-net* > + ./testpmd -c 0xe -n 4 --socket-mem 1024,1024 \ > + --vdev 'eth_vhost0,iface=3Dvhost-net,queues=3D2' -- \ > + -i --nb-cores=3D2 --rxq=3D2 --txq=3D2 > + testpmd>set fwd mac > + testpmd>start > + > +2. Launch VM1, set queues=3D2, vectors=3D2*queues+2, mq=3Don:: > + > + qemu-system-x86_64 -name vm1 -cpu host -enable-kvm \ > + -m 2048 -object memory-backend-file,id=3Dmem,size=3D2048M,mem- > path=3D/mnt/huge,share=3Don -numa node,memdev=3Dmem \ > + -mem-prealloc -smp cores=3D3,sockets=3D1 -drive > file=3D/home/osimg/ubuntu16.img \ > + -chardev socket,id=3Dchar0,path=3D./vhost-net \ > + -netdev type=3Dvhost-user,id=3Dmynet1,chardev=3Dchar0,vhostforce,que= ues=3D2 \ > + -device virtio-net- > pci,mac=3D52:54:00:00:00:01,netdev=3Dmynet1,mrg_rxbuf=3Don,mq=3Don,vector= s=3D6 \ > + -netdev tap,id=3Dipvm1,ifname=3Dtap3,script=3D/etc/qemu-ifup -device > rtl8139,netdev=3Dipvm1,id=3Dnet0,mac=3D00:00:00:00:10:01 \ > + -vnc :2 -daemonize > + > +3. On VM1, bind virtio net to igb_uio and run testpmd, > + using one queue for testing at first :: > + > + ./testpmd -c 0x7 -n 3 -- -i --rxq=3D1 --txq=3D1 --txqflags=3D0xf01 \ > + --rss-ip --nb-cores=3D1 > + testpmd>set fwd mac > + testpmd>start > + > +4. On VM1, dynamic change queue numbers at virtio-pmd side from 1 queue > to 2 > + queues, then ensure virtio-pmd RX/TX can work normally. > + The expected behavior is that both queues can RX/TX traffic:: > + > + testpmd>stop > + testpmd>port stop all > + testpmd>port config all rxq 2 > + testpmd>port config all txq 2 > + testpmd>port start all > + testpmd>start > + > + after 10 seconds > + testpmd>stop > + then check each queue's RX/TX packet numbers. > + > +5. There should be no core dump or unexpected crash happened during the > queue > + number changes. > + > + > +Test Case3: DPDK PVP Vhost-pmd queue number dynamic change performance > check > +=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 > + > +This case is to check if the vhost-pmd queue number dynamic change can > work > +well. In this case, set vhost-pmd and virtio-pmd max queue number as 2. > +Launch vhost-pmd with 1 queue first then in testpmd, change the queue > number > +to 2 queues. At virtio-pmd side, launch it with 2 queues. Expect no cras= h > +happened. After the dynamical changes, vhost-pmd can use 2 queues to > RX/TX > +packets. > + > + > +flow: > +TG --> NIC --> Vhost --> Virtio--> Vhost --> NIC --> TG > + > +1. Bind one port to igb_uio, then launch testpmd by below command, > + ensure the vhost using 2 queues: > + rm -rf vhost-net* > + ./testpmd -c 0xe -n 4 --socket-mem 1024,1024 \ > + --vdev 'eth_vhost0,iface=3Dvhost-net,queues=3D2' -- \ > + -i --nb-cores=3D1 --rxq=3D1 --txq=3D1 > + testpmd>set fwd mac > + testpmd>start > + > +2. Launch VM1, set queues=3D2, vectors=3D2*queues+2, mq=3Don:: > + > + qemu-system-x86_64 -name vm1 -cpu host -enable-kvm \ > + -m 2048 -object memory-backend-file,id=3Dmem,size=3D2048M,mem- > path=3D/mnt/huge,share=3Don -numa node,memdev=3Dmem \ > + -mem-prealloc -smp cores=3D3,sockets=3D1 -drive > file=3D/home/osimg/ubuntu16.img \ > + -chardev socket,id=3Dchar0,path=3D./vhost-net \ > + -netdev type=3Dvhost-user,id=3Dmynet1,chardev=3Dchar0,vhostforce,que= ues=3D2 \ > + -device virtio-net- > pci,mac=3D52:54:00:00:00:01,netdev=3Dmynet1,mrg_rxbuf=3Don,mq=3Don,vector= s=3D6 \ > + -netdev tap,id=3Dipvm1,ifname=3Dtap3,script=3D/etc/qemu-ifup -device > rtl8139,netdev=3Dipvm1,id=3Dnet0,mac=3D00:00:00:00:10:01 \ > + -vnc :2 -daemonize > + > +3. On VM1, bind virtio net to igb_uio and run testpmd, > + using one queue for testing at first :: > + > + ./testpmd -c 0x7 -n 4 -- -i --rxq=3D2 --txq=3D2 \ > + --txqflags=3D0xf01 --rss-ip --nb-cores=3D2 > + testpmd>set fwd mac > + testpmd>start > + > +4. On host, dynamic change queue numbers at vhost-pmd side from 1 queue > to 2 > + queues, then ensure vhost-pmd RX/TX can work normally. > + The expected behavior is that both queues can RX/TX traffic:: > + > + testpmd>stop > + testpmd>port stop all > + testpmd>port config all rxq 2 > + testpmd>port config all txq 2 > + testpmd>port start all > + testpmd>start > + > + after 10 seconds > + testpmd>stop > + then check each queue's RX/TX packet numbers. > + > +5. There should be no core dump or unexpected crash happened during the > + queue number changes. > -- > 2.7.4