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 EA89E2FDD for ; Fri, 30 Oct 2015 06:20:42 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP; 29 Oct 2015 22:20:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,217,1444719600"; d="scan'208";a="839036640" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga002.fm.intel.com with ESMTP; 29 Oct 2015 22:20:41 -0700 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 29 Oct 2015 22:20:41 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 29 Oct 2015 22:20:41 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.204]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.47]) with mapi id 14.03.0248.002; Fri, 30 Oct 2015 13:20:39 +0800 From: "Liu, Yong" To: "Ding, HengX" , "dts@dpdk.org" Thread-Topic: [dts] [PATCH] TestSuite_tso.py: Fix some performance case issues. Thread-Index: AQHREr2y8Fn6vqXBJU2ajtGftbTl8p6DfFYA Date: Fri, 30 Oct 2015 05:20:38 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E10F3839D@SHSMSX103.ccr.corp.intel.com> References: <1446173381-1947-1-git-send-email-hengx.ding@intel.com> In-Reply-To: <1446173381-1947-1-git-send-email-hengx.ding@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "Ding, HengX" Subject: Re: [dts] [PATCH] TestSuite_tso.py: Fix some performance case issues. 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: Fri, 30 Oct 2015 05:20:43 -0000 Hi Heng, some comments below. > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Ding Heng > Sent: Friday, October 30, 2015 10:50 AM > To: dts@dpdk.org > Cc: Ding, HengX > Subject: [dts] [PATCH] TestSuite_tso.py: Fix some performance case issues= . >=20 > Flows will not be the same on 2 IXIA ports in performance test case in > order to avoid only one port will receive packet, work around for port > can't start up issues when testpmd down. >=20 > Signed-off-by: Ding Heng >=20 > diff --git a/conf/crbs.cfg b/conf/crbs.cfg Please do not send out your own configuration files. It may be a risk to sh= ow host ip address and password. > index 81c5c29..d031fb3 100644 > --- a/conf/crbs.cfg > +++ b/conf/crbs.cfg > @@ -9,14 +9,14 @@ > # ixia_group: IXIA group nmae > # channels: Board channel number > # bypass_core0: Whether by pass core0 > -[DUT IP1] > -dut_ip=3Dxxx.xxx.xxx.xxx > +[10.239.129.182] > +dut_ip=3D10.239.129.182 > dut_user=3Droot > -dut_passwd=3D > +dut_passwd=3D tester > os=3Dlinux > -tester_ip=3Dxxx.xxx.xxx.xxx > -tester_passwd=3D > -ixia_group=3D > +tester_ip=3D10.239.129.182 > +tester_passwd=3Dtester > +ixia_group=3DIXIA Group1 > channels=3D4 > bypass_core0=3DTrue > [DUT IP2] > diff --git a/conf/ixia.cfg b/conf/ixia.cfg > index 92fd496..4c3b511 100644 > --- a/conf/ixia.cfg > +++ b/conf/ixia.cfg > @@ -3,11 +3,11 @@ > # Version : IXIA TCL server version > # IP : IXIA server IP address > # Ports : [IXIA port list] > -[IXIA Group] > +[IXIA Group1] > ixia_version=3D6.62 > -ixia_ip=3Dxxx.xxx.xxx.xxx > +ixia_ip=3D10.239.128.121 > ixia_ports=3D > - card=3D1,port=3D1; > - card=3D1,port=3D2; > - card=3D1,port=3D3; > - card=3D1,port=3D4; > + card=3D3,port=3D11; > + card=3D3,port=3D12; > + card=3D3,port=3D13; > + card=3D3,port=3D14; > diff --git a/conf/ports.cfg b/conf/ports.cfg > index 27ebfe0..3b2fa68 100644 > --- a/conf/ports.cfg > +++ b/conf/ports.cfg > @@ -7,12 +7,15 @@ > # [VM NAME] virtual machine name; This section is for virutal scenario > # ports =3D > # dev_idx=3Ddevice index of ports info, peer=3DTester Pci BDF > -[DUT IP] > +[10.239.129.182] > ports =3D > - pci=3DXX:XX.X,intf=3Deth0; > - pci=3DYY:YY.Y,mac=3DXX:XX:XX:XX:XX:XX,peer=3DZZ:ZZ.Z,numa=3D0; > - pci=3DZZ:ZZ.Y,peer=3DIXIA:X.Y > -[VM NAME] > -ports =3D > - dev_idx=3D0,peer=3DXX:XX.X; > - dev_idx=3D1,peer=3DYY:YY.Y; > + pci=3D83:00.0,peer=3DIXIA:3.11; > + pci=3D83:00.1,peer=3DIXIA:3.12; > + pci=3D83:00.2,peer=3DIXIA:3.13; > + pci=3D83:00.3,peer=3DIXIA:3.14 > +# pci=3D83:00.0,intf=3Dp6p1; > +# pci=3D83:00.1,intf=3Dp6p2; > +# pci=3D83:00.2,intf=3Dp6p3; > +# pci=3D83:00.3,intf=3Dp6p4 > +# pci=3D84:00.0,peer=3DIXIA:2.6; > +# pci=3D86:00.0,peer=3DIXIA:2.9 > diff --git a/tests/TestSuite_tso.py b/tests/TestSuite_tso.py > index 392157f..335b574 100644 > --- a/tests/TestSuite_tso.py > +++ b/tests/TestSuite_tso.py > @@ -90,7 +90,7 @@ class TestTSO(TestCase): > self.dut_ports =3D self.dut.get_ports(self.nic) >=20 > # Verify that enough ports are available > - self.verify(len(self.dut_ports) >=3D 2, "Insufficient ports for > testing") > + #self.verify(len(self.dut_ports) >=3D 2, "Insufficient ports for > testing") >=20 I think this case required two ports at least, why you comment this line? > # Verify that enough threads are available > self.all_cores_mask =3D > dts.create_mask(self.dut.get_core_list("all")) > @@ -306,14 +306,7 @@ class TestTSO(TestCase): >=20 > # prepare traffic generator input > tgen_input =3D [] > - tgen_input.append((self.tester.get_local_port(self.dut_ports[0])= , > - self.tester.get_local_port(self.dut_ports[1])= , > - "test.pcap")) > - tgen_input.append((self.tester.get_local_port(self.dut_ports[1])= , > - self.tester.get_local_port(self.dut_ports[0])= , > - "test.pcap")) >=20 > - mac =3D self.dut.get_mac_address(self.dut_ports[0]) > # run testpmd for each core config > for test_cycle in self.test_cycles: > core_config =3D test_cycle['cores'] > @@ -324,15 +317,16 @@ class TestTSO(TestCase): > else: > queues =3D 1 >=20 > - command_line =3D "./%s/app/testpmd -c %s -n %d %s -- -i -- > coremask=3D%s --rxd=3D512 --txd=3D512 --burst=3D32 --rxfreet=3D64 --mbcac= he=3D128 -- > portmask=3D%s --txpt=3D36 --txht=3D0 --txwt=3D0 --txfreet=3D32 --txrst=3D= 32 -- > txqflags=3D0 " % (self.target, self.all_cores_mask, > self.dut.get_memory_channels(), self.blacklist, self.coreMask, > self.portMask) > + command_line =3D "./%s/app/testpmd -c %s -n %d -- -i -- > coremask=3D%s --portmask=3D%s " % (self.target, self.all_cores_mask, > self.dut.get_memory_channels(), self.coreMask, self.portMask) I remembered that txqflags must be 0 for TSO feature, can you explain that = why it not need now?=20 > + #command_line =3D "./%s/app/testpmd -c %s -n %d %s -- -i -- > coremask=3D%s --rxd=3D512 --txd=3D512 --burst=3D32 --rxfreet=3D64 --mbcac= he=3D128 -- > portmask=3D%s --txpt=3D36 --txht=3D0 --txwt=3D0 --txfreet=3D32 --txrst=3D= 32 -- > txqflags=3D0 " % (self.target, self.all_cores_mask, > self.dut.get_memory_channels(), self.blacklist, self.coreMask, > self.portMask) Please remove useless code. >=20 > info =3D "Executing PMD using %s\n" % test_cycle['cores'] > self.logger.info(info) > dts.report(info, annex=3DTrue) > dts.report(command_line + "\n\n", frame=3DTrue, annex=3DTrue= ) >=20 > - self.dut.send_expect(cmd, "testpmd> ", 120) > - self.dut.send_expect("set verbose 1", "testpmd> ", 120) > + self.dut.send_expect(command_line, "testpmd> ", 120) > + #self.dut.send_expect("set verbose 1", "testpmd> ", 120) > self.dut.send_expect("csum set ip hw %d" % self.dut_ports[0]= , > "testpmd> ", 120) > self.dut.send_expect("csum set udp hw %d" % self.dut_ports[0= ], > "testpmd> ", 120) > self.dut.send_expect("csum set tcp hw %d" % self.dut_ports[0= ], > "testpmd> ", 120) > @@ -354,8 +348,16 @@ class TestTSO(TestCase): > # create pcap file > self.logger.info("Running with frame size %d " % > frame_size) > payload_size =3D frame_size - self.headers_size > - self.tester.scapy_append('wrpcap("test.pcap", > [Ether(dst=3D"%s",src=3D"52:00:00:00:00:01")/IP(src=3D"192.168.1.1",dst= =3D"192.168 > .1.2")/TCP(sport=3D1021,dport=3D1021)/("X"*%d)])' % (mac, payload_size)) > + for _port in range(2): > + mac =3D self.dut.get_mac_address(self.dut_ports[_port]) > + self.tester.scapy_append('wrpcap("dst%d.pcap", > [Ether(dst=3D"%s",src=3D"52:00:00:00:00:01")/IP(src=3D"192.168.1.1",dst= =3D"192.168 > .1.2")/TCP(sport=3D1021,dport=3D1021)/("X"*%d)])' % (_port, mac, payload_= size)) > self.tester.scapy_execute() > + > tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), > + self.tester.get_local_port(self.dut_ports[1])= , > + "dst0.pcap")) > + > tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), > + self.tester.get_local_port(self.dut_ports[0])= , > + "dst1.pcap")) >=20 You can just use one function in the loop like below. tgen_input.append((self.tester.get_local_port(self.dut_ports[_port], self.tester.get_local_port(self.dut_ports[1-port]), "dst%d.pcap" %port))=20 > # run traffic generator > _, pps =3D > self.tester.traffic_generator_throughput(tgen_input) > @@ -367,6 +369,10 @@ class TestTSO(TestCase): > self.dut.send_expect("stop", "testpmd> ") > self.dut.send_expect("quit", "# ", 30) > time.sleep(5) > + #work around for port unable to up issue. > + command_line =3D "./%s/app/testpmd -c %s -n %d -- --coremask= =3D%s > --portmask=3D%s " % (self.target, self.all_cores_mask, > self.dut.get_memory_channels(), self.coreMask, self.portMask) > + self.dut.send_expect(command_line, "Press enter to exit", 30) > + self.dut.send_expect("^C", "#") >=20 This is not good for work around for existing issue. We could submit a bug = for this issue.=20 > for n in range(len(self.test_cycles)): > for frame_size in self.frame_sizes: > -- > 1.9.3