test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH V1] add automation for pvp_virtio_user_multi_queues_port_restart
@ 2020-03-31  8:22 Xiao Qimai
  2020-03-31  8:29 ` Xiao, QimaiX
  2020-04-16  8:49 ` Tu, Lijuan
  0 siblings, 2 replies; 4+ messages in thread
From: Xiao Qimai @ 2020-03-31  8:22 UTC (permalink / raw)
  To: dts; +Cc: Xiao Qimai

*. add automation for test_plans:pvp_virtio_user_multi_queues_port_restart.rst

Signed-off-by: Xiao Qimai <qimaix.xiao@intel.com>
---
 ...te_pvp_virtio_user_multi_queues_port_restart.py | 294 +++++++++++++++++++++
 1 file changed, 294 insertions(+)
 create mode 100644 tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py

diff --git a/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py b/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
new file mode 100644
index 0000000..58d603f
--- /dev/null
+++ b/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
@@ -0,0 +1,294 @@
+#
+# BSD LICENSE
+#
+# Copyright(c) 2010-2020 Intel Corporation. All rights reserved.
+# 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.
+
+
+"""
+DPDK Test suite.
+This test vhost/virtio-user pvp multi-queues with split virtqueue
+and packed virtqueue different rx/tx paths, includes split virtqueue in-order
+mergeable, in-order non-mergeable, mergeable, non-mergeable, vector_rx path test,
+and packed virtqueue in-order mergeable, in-order non-mergeable, mergeable,
+non-mergeable path, also cover port restart test with each path.
+"""
+import time
+import re
+from test_case import TestCase
+from packet import Packet
+from pktgen import PacketGeneratorHelper
+
+
+class TestPVPVirtioUserMultiQueuesPortRestart(TestCase):
+
+    def set_up_all(self):
+        """
+        Run at the start of each test suite.
+        """
+        self.frame_sizes = [64]
+        self.dut_ports = self.dut.get_ports()
+        self.verify(len(self.dut_ports) >= 1, "Insufficient ports for testing")
+        # get core mask
+        self.ports_socket = self.dut.get_numa_id(self.dut_ports[0])
+        self.core_list = self.dut.get_core_list('all', socket=self.ports_socket)
+        self.dst_mac = self.dut.get_mac_address(self.dut_ports[0])
+        self.out_path = '/tmp'
+        out = self.tester.send_expect('ls -d %s' % self.out_path, '# ')
+        if 'No such file or directory' in out:
+            self.tester.send_expect('mkdir -p %s' % self.out_path, '# ')
+        # create an instance to set stream field setting
+        self.pktgen_helper = PacketGeneratorHelper()
+        self.pci_info = self.dut.ports_info[0]['pci']
+        self.vhost = self.dut.new_session(suite="vhost-user")
+        self.tx_port = self.tester.get_local_port(self.dut_ports[0])
+        self.queue_number = 2
+        self.dut.kill_all()
+
+    def set_up(self):
+        """
+        Run before each test case.
+        """
+        # Clean the execution ENV
+        self.dut.send_expect("rm -rf ./vhost.out", "#")
+        # Prepare the result table
+        self.table_header = ["FrameSize(B)", "Mode",
+                             "Throughput(Mpps)", "% linerate", "Cycle"]
+        self.result_table_create(self.table_header)
+
+    def start_vhost_testpmd(self):
+        """
+        start testpmd on vhost
+        """
+        self.dut.send_expect("killall -s INT testpmd", "#")
+        self.dut.send_expect("rm -rf ./vhost-net*", "#")
+        testcmd = self.dut.target + "/app/testpmd "
+        vdev = 'net_vhost0,iface=vhost-net,queues=2,client=0'
+        eal_params = self.dut.create_eal_parameters(cores=self.core_list[2:5], prefix='vhost', ports=[self.pci_info],
+                                                    vdevs=[vdev])
+        para = " -- -i --nb-cores=2 --rxq=%s --txq=%s --rss-ip" % (self.queue_number, self.queue_number)
+        command_line_vhost = testcmd + eal_params + para
+        self.vhost.send_expect(command_line_vhost, "testpmd> ", 120)
+        self.vhost.send_expect("set fwd mac", "testpmd> ", 120)
+        self.vhost.send_expect("start", "testpmd> ", 120)
+
+    def start_virtio_user_testpmd(self, flag):
+        """
+        start testpmd in vm depend on different path
+        """
+        testcmd = self.dut.target + "/app/testpmd "
+        vdev = 'net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2'
+        if 'packed_ring' in flag:
+            vdev += ',packed_vq=1'
+        if 'nonmergeable' in flag or 'vector' in flag:
+            vdev += ',mrg_rxbuf=0'
+        if 'inorder' not in flag:
+            vdev += ',in_order=0'
+        eal_params = self.dut.create_eal_parameters(cores=self.core_list[5:8], prefix='virtio', no_pci=True,
+                                                    vdevs=[vdev])
+        if 'vector' not in flag:
+            para = " -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=%s --txq=%s --rss-ip" % (
+            self.queue_number, self.queue_number)
+        else:
+            para = " -- -i --tx-offloads=0x0 --rss-ip --nb-cores=2 --rxq=%s --txq=%s --rss-ip" % (
+            self.queue_number, self.queue_number)
+        command_line_user = testcmd + eal_params + para
+        self.dut.send_expect(command_line_user, "testpmd> ", 30)
+        self.dut.send_expect("set fwd mac", "testpmd> ", 30)
+        self.dut.send_expect("start", "testpmd> ", 30)
+
+    def check_port_link_status_after_port_restart(self):
+        """
+        check the link status after port restart
+        """
+        loop = 1
+        port_status = 'down'
+        while (loop <= 5):
+            out = self.vhost.send_expect("show port info 0", "testpmd> ", 120)
+            port_status = re.findall("Link\s*status:\s*([a-z]*)", out)
+            if ("down" not in port_status):
+                break
+            time.sleep(2)
+            loop = loop + 1
+        self.verify("down" not in port_status, "port can not up after restart")
+
+    def port_restart(self, restart_times=1):
+        for i in range(restart_times):
+            self.vhost.send_expect("stop", "testpmd> ", 120)
+            self.vhost.send_expect("port stop 0", "testpmd> ", 120)
+            self.vhost.send_expect("clear port stats 0", "testpmd> ", 120)
+            self.vhost.send_expect("port start 0", "testpmd> ", 120)
+            self.check_port_link_status_after_port_restart()
+            self.vhost.send_expect("start", "testpmd> ", 120)
+
+    def update_table_info(self, case_info, frame_size, Mpps, throughtput, Cycle):
+        results_row = [frame_size]
+        results_row.append(case_info)
+        results_row.append(Mpps)
+        results_row.append(throughtput)
+        results_row.append(Cycle)
+        self.result_table_add(results_row)
+
+    def calculate_avg_throughput(self, frame_size):
+        """
+        start to send packet and get the throughput
+        """
+        pkt = Packet(pkt_type='IP_RAW', pkt_len=frame_size)
+        pkt.config_layer('ether', {'dst': '%s' % self.dst_mac})
+        pkt.save_pcapfile(self.tester, "%s/pvp_multipath.pcap" % (self.out_path))
+
+        tgenInput = []
+        port = self.tester.get_local_port(self.dut_ports[0])
+        tgenInput.append((port, port, "%s/pvp_multipath.pcap" % self.out_path))
+        self.tester.pktgen.clear_streams()
+        fields_config = {'ip': {'dst': {'action': 'random'}}}
+        streams = self.pktgen_helper.prepare_stream_from_tginput(tgenInput, 100, fields_config, self.tester.pktgen)
+        # set traffic option
+        traffic_opt = {'delay': 5}
+        _, pps = self.tester.pktgen.measure_throughput(stream_ids=streams, options=traffic_opt)
+        Mpps = pps / 1000000.0
+        self.verify(Mpps > 0, "can not receive packets of frame size %d" % (frame_size))
+        throughput = Mpps * 100 / \
+                    float(self.wirespeed(self.nic, frame_size, 1))
+        return Mpps, throughput
+
+    def send_and_verify(self, case_info):
+        """
+        start to send packets and verify it
+        """
+        for frame_size in self.frame_sizes:
+            info = "Running test %s, and %d frame size." % (self.running_case, frame_size)
+            self.logger.info(info)
+            Mpps, throughput = self.calculate_avg_throughput(frame_size)
+            self.update_table_info(case_info, frame_size, Mpps, throughput, "Before Restart")
+            self.check_packets_of_each_queue(frame_size)
+            restart_times = 100 if case_info == 'packed_ring_mergeable' else 1
+            self.port_restart(restart_times=restart_times)
+            Mpps, throughput = self.calculate_avg_throughput(frame_size)
+            self.update_table_info(case_info, frame_size, Mpps, throughput, "After Restart")
+            self.check_packets_of_each_queue(frame_size)
+
+    def check_packets_of_each_queue(self, frame_size):
+        """
+        check each queue has receive packets
+        """
+        out = self.dut.send_expect("stop", "testpmd> ", 60)
+        p = re.compile("RX Port= 0/Queue= (\d+) -> TX Port= 0/Queue= \d+.*\n.*RX-packets:\s?(\d+).*TX-packets:\s?(\d+)")
+        res = p.findall(out)
+        self.res_queues = sorted([int(i[0]) for i in res])
+        self.res_rx_pkts = [int(i[1]) for i in res]
+        self.res_tx_pkts = [int(i[2]) for i in res]
+        self.verify(self.res_queues == list(range(self.queue_number)),
+                    "frame_size: %s, expect %s queues to handle packets, result %s queues" % (frame_size, list(range(self.queue_number)), self.res_queues))
+        self.verify(all(self.res_rx_pkts), "each queue should has rx packets, result: %s" % self.res_rx_pkts)
+        self.verify(all(self.res_tx_pkts), "each queue should has tx packets, result: %s" % self.res_tx_pkts)
+        self.dut.send_expect("start", "testpmd> ", 60)
+
+    def close_all_testpmd(self):
+        """
+        close testpmd about vhost-user and vm_testpmd
+        """
+        self.vhost.send_expect("quit", "#", 60)
+        self.dut.send_expect("quit", "#", 60)
+
+    def test_perf_pvp_2queues_test_with_packed_ring_mergeable_path(self):
+        self.start_vhost_testpmd()
+        self.start_virtio_user_testpmd(flag="packed_ring_mergeable")
+        self.send_and_verify("packed_ring_mergeable")
+        self.close_all_testpmd()
+        self.result_table_print()
+
+    def test_perf_pvp_2queues_test_with_packed_ring_nonmergeable_path(self):
+        self.start_vhost_testpmd()
+        self.start_virtio_user_testpmd(flag="packed_ring_nonmergeable")
+        self.send_and_verify("packed_ring_nonmergeable")
+        self.close_all_testpmd()
+        self.result_table_print()
+
+    def test_perf_pvp_2queues_test_with_split_ring_inorder_mergeable_path(self):
+        self.start_vhost_testpmd()
+        self.start_virtio_user_testpmd(flag="split_ring_inorder_mergeable")
+        self.send_and_verify("split_ring_inorder_mergeable")
+        self.close_all_testpmd()
+        self.result_table_print()
+
+    def test_perf_pvp_2queues_test_with_split_ring_inorder_nonmergeable_path(self):
+        self.start_vhost_testpmd()
+        self.start_virtio_user_testpmd(flag="split_ring_inorder_nonmergeable")
+        self.send_and_verify("split_ring_inorder_nonmergeable")
+        self.close_all_testpmd()
+        self.result_table_print()
+
+    def test_perf_pvp_2queues_test_with_split_ring_mergeable_path(self):
+        self.start_vhost_testpmd()
+        self.start_virtio_user_testpmd(flag="split_ring_mergeable")
+        self.send_and_verify("split_ring_mergeable")
+        self.close_all_testpmd()
+        self.result_table_print()
+
+    def test_perf_pvp_2queues_test_with_split_ring_nonmergeable_path(self):
+        self.start_vhost_testpmd()
+        self.start_virtio_user_testpmd(flag="split_ring_nonmergeable")
+        self.send_and_verify("split_ring_nonmergeable")
+        self.close_all_testpmd()
+        self.result_table_print()
+
+    def test_perf_pvp_2queues_test_with_split_ring_vector_rx_path(self):
+        self.start_vhost_testpmd()
+        self.start_virtio_user_testpmd(flag="split_ring_vector_rx")
+        self.send_and_verify("split_ring_vector_rx")
+        self.close_all_testpmd()
+        self.result_table_print()
+
+    def test_perf_pvp_2queues_test_with_packed_ring_inorder_mergeable_path(self):
+        self.start_vhost_testpmd()
+        self.start_virtio_user_testpmd(flag="packed_ring_inorder_mergeable")
+        self.send_and_verify("packed_ring_inorder_mergeable")
+        self.close_all_testpmd()
+        self.result_table_print()
+
+    def test_perf_pvp_2queues_test_with_packed_ring_inorder_nonmergeable_path(self):
+        self.start_vhost_testpmd()
+        self.start_virtio_user_testpmd(flag="packed_ring_inorder_nonmergeable")
+        self.send_and_verify("packed_ring_inorder_nonmergeable")
+        self.close_all_testpmd()
+        self.result_table_print()
+
+    def tear_down(self):
+        """
+        Run after each test case.
+        """
+        self.dut.kill_all()
+        time.sleep(2)
+
+    def tear_down_all(self):
+        """
+        Run after each test suite.
+        """
+        self.dut.close_session(self.vhost)
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dts] [PATCH V1] add automation for pvp_virtio_user_multi_queues_port_restart
  2020-03-31  8:22 [dts] [PATCH V1] add automation for pvp_virtio_user_multi_queues_port_restart Xiao Qimai
@ 2020-03-31  8:29 ` Xiao, QimaiX
  2020-03-31  8:42   ` Wang, Yinan
  2020-04-16  8:49 ` Tu, Lijuan
  1 sibling, 1 reply; 4+ messages in thread
From: Xiao, QimaiX @ 2020-03-31  8:29 UTC (permalink / raw)
  To: dts

[-- Attachment #1: Type: text/plain, Size: 15703 bytes --]

Tested-by: Xiao Qimai <qimaix.xiao@intel.com>

Regards,
Xiao Qimai


> -----Original Message-----
> From: Xiao, QimaiX
> Sent: Tuesday, March 31, 2020 4:22 PM
> To: dts@dpdk.org
> Cc: Xiao, QimaiX <qimaix.xiao@intel.com>
> Subject: [PATCH V1] add automation for
> pvp_virtio_user_multi_queues_port_restart
> 
> *. add automation for
> test_plans:pvp_virtio_user_multi_queues_port_restart.rst
> 
> Signed-off-by: Xiao Qimai <qimaix.xiao@intel.com>
> ---
>  ...te_pvp_virtio_user_multi_queues_port_restart.py | 294
> +++++++++++++++++++++
>  1 file changed, 294 insertions(+)
>  create mode 100644
> tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> 
> diff --git a/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> b/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> new file mode 100644
> index 0000000..58d603f
> --- /dev/null
> +++ b/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> @@ -0,0 +1,294 @@
> +#
> +# BSD LICENSE
> +#
> +# Copyright(c) 2010-2020 Intel Corporation. All rights reserved.
> +# 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.
> +
> +
> +"""
> +DPDK Test suite.
> +This test vhost/virtio-user pvp multi-queues with split virtqueue and
> +packed virtqueue different rx/tx paths, includes split virtqueue
> +in-order mergeable, in-order non-mergeable, mergeable, non-mergeable,
> +vector_rx path test, and packed virtqueue in-order mergeable, in-order
> +non-mergeable, mergeable, non-mergeable path, also cover port restart
> test with each path.
> +"""
> +import time
> +import re
> +from test_case import TestCase
> +from packet import Packet
> +from pktgen import PacketGeneratorHelper
> +
> +
> +class TestPVPVirtioUserMultiQueuesPortRestart(TestCase):
> +
> +    def set_up_all(self):
> +        """
> +        Run at the start of each test suite.
> +        """
> +        self.frame_sizes = [64]
> +        self.dut_ports = self.dut.get_ports()
> +        self.verify(len(self.dut_ports) >= 1, "Insufficient ports for testing")
> +        # get core mask
> +        self.ports_socket = self.dut.get_numa_id(self.dut_ports[0])
> +        self.core_list = self.dut.get_core_list('all', socket=self.ports_socket)
> +        self.dst_mac = self.dut.get_mac_address(self.dut_ports[0])
> +        self.out_path = '/tmp'
> +        out = self.tester.send_expect('ls -d %s' % self.out_path, '# ')
> +        if 'No such file or directory' in out:
> +            self.tester.send_expect('mkdir -p %s' % self.out_path, '# ')
> +        # create an instance to set stream field setting
> +        self.pktgen_helper = PacketGeneratorHelper()
> +        self.pci_info = self.dut.ports_info[0]['pci']
> +        self.vhost = self.dut.new_session(suite="vhost-user")
> +        self.tx_port = self.tester.get_local_port(self.dut_ports[0])
> +        self.queue_number = 2
> +        self.dut.kill_all()
> +
> +    def set_up(self):
> +        """
> +        Run before each test case.
> +        """
> +        # Clean the execution ENV
> +        self.dut.send_expect("rm -rf ./vhost.out", "#")
> +        # Prepare the result table
> +        self.table_header = ["FrameSize(B)", "Mode",
> +                             "Throughput(Mpps)", "% linerate", "Cycle"]
> +        self.result_table_create(self.table_header)
> +
> +    def start_vhost_testpmd(self):
> +        """
> +        start testpmd on vhost
> +        """
> +        self.dut.send_expect("killall -s INT testpmd", "#")
> +        self.dut.send_expect("rm -rf ./vhost-net*", "#")
> +        testcmd = self.dut.target + "/app/testpmd "
> +        vdev = 'net_vhost0,iface=vhost-net,queues=2,client=0'
> +        eal_params = self.dut.create_eal_parameters(cores=self.core_list[2:5],
> prefix='vhost', ports=[self.pci_info],
> +                                                    vdevs=[vdev])
> +        para = " -- -i --nb-cores=2 --rxq=%s --txq=%s --rss-ip" %
> (self.queue_number, self.queue_number)
> +        command_line_vhost = testcmd + eal_params + para
> +        self.vhost.send_expect(command_line_vhost, "testpmd> ", 120)
> +        self.vhost.send_expect("set fwd mac", "testpmd> ", 120)
> +        self.vhost.send_expect("start", "testpmd> ", 120)
> +
> +    def start_virtio_user_testpmd(self, flag):
> +        """
> +        start testpmd in vm depend on different path
> +        """
> +        testcmd = self.dut.target + "/app/testpmd "
> +        vdev = 'net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-
> net,queues=2'
> +        if 'packed_ring' in flag:
> +            vdev += ',packed_vq=1'
> +        if 'nonmergeable' in flag or 'vector' in flag:
> +            vdev += ',mrg_rxbuf=0'
> +        if 'inorder' not in flag:
> +            vdev += ',in_order=0'
> +        eal_params = self.dut.create_eal_parameters(cores=self.core_list[5:8],
> prefix='virtio', no_pci=True,
> +                                                    vdevs=[vdev])
> +        if 'vector' not in flag:
> +            para = " -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-
> cores=2 --rxq=%s --txq=%s --rss-ip" % (
> +            self.queue_number, self.queue_number)
> +        else:
> +            para = " -- -i --tx-offloads=0x0 --rss-ip --nb-cores=2 --rxq=%s --txq=%s
> --rss-ip" % (
> +            self.queue_number, self.queue_number)
> +        command_line_user = testcmd + eal_params + para
> +        self.dut.send_expect(command_line_user, "testpmd> ", 30)
> +        self.dut.send_expect("set fwd mac", "testpmd> ", 30)
> +        self.dut.send_expect("start", "testpmd> ", 30)
> +
> +    def check_port_link_status_after_port_restart(self):
> +        """
> +        check the link status after port restart
> +        """
> +        loop = 1
> +        port_status = 'down'
> +        while (loop <= 5):
> +            out = self.vhost.send_expect("show port info 0", "testpmd> ", 120)
> +            port_status = re.findall("Link\s*status:\s*([a-z]*)", out)
> +            if ("down" not in port_status):
> +                break
> +            time.sleep(2)
> +            loop = loop + 1
> +        self.verify("down" not in port_status, "port can not up after
> + restart")
> +
> +    def port_restart(self, restart_times=1):
> +        for i in range(restart_times):
> +            self.vhost.send_expect("stop", "testpmd> ", 120)
> +            self.vhost.send_expect("port stop 0", "testpmd> ", 120)
> +            self.vhost.send_expect("clear port stats 0", "testpmd> ", 120)
> +            self.vhost.send_expect("port start 0", "testpmd> ", 120)
> +            self.check_port_link_status_after_port_restart()
> +            self.vhost.send_expect("start", "testpmd> ", 120)
> +
> +    def update_table_info(self, case_info, frame_size, Mpps, throughtput,
> Cycle):
> +        results_row = [frame_size]
> +        results_row.append(case_info)
> +        results_row.append(Mpps)
> +        results_row.append(throughtput)
> +        results_row.append(Cycle)
> +        self.result_table_add(results_row)
> +
> +    def calculate_avg_throughput(self, frame_size):
> +        """
> +        start to send packet and get the throughput
> +        """
> +        pkt = Packet(pkt_type='IP_RAW', pkt_len=frame_size)
> +        pkt.config_layer('ether', {'dst': '%s' % self.dst_mac})
> +        pkt.save_pcapfile(self.tester, "%s/pvp_multipath.pcap" %
> + (self.out_path))
> +
> +        tgenInput = []
> +        port = self.tester.get_local_port(self.dut_ports[0])
> +        tgenInput.append((port, port, "%s/pvp_multipath.pcap" %
> self.out_path))
> +        self.tester.pktgen.clear_streams()
> +        fields_config = {'ip': {'dst': {'action': 'random'}}}
> +        streams =
> self.pktgen_helper.prepare_stream_from_tginput(tgenInput, 100,
> fields_config, self.tester.pktgen)
> +        # set traffic option
> +        traffic_opt = {'delay': 5}
> +        _, pps = self.tester.pktgen.measure_throughput(stream_ids=streams,
> options=traffic_opt)
> +        Mpps = pps / 1000000.0
> +        self.verify(Mpps > 0, "can not receive packets of frame size %d" %
> (frame_size))
> +        throughput = Mpps * 100 / \
> +                    float(self.wirespeed(self.nic, frame_size, 1))
> +        return Mpps, throughput
> +
> +    def send_and_verify(self, case_info):
> +        """
> +        start to send packets and verify it
> +        """
> +        for frame_size in self.frame_sizes:
> +            info = "Running test %s, and %d frame size." % (self.running_case,
> frame_size)
> +            self.logger.info(info)
> +            Mpps, throughput = self.calculate_avg_throughput(frame_size)
> +            self.update_table_info(case_info, frame_size, Mpps, throughput,
> "Before Restart")
> +            self.check_packets_of_each_queue(frame_size)
> +            restart_times = 100 if case_info == 'packed_ring_mergeable' else 1
> +            self.port_restart(restart_times=restart_times)
> +            Mpps, throughput = self.calculate_avg_throughput(frame_size)
> +            self.update_table_info(case_info, frame_size, Mpps, throughput,
> "After Restart")
> +            self.check_packets_of_each_queue(frame_size)
> +
> +    def check_packets_of_each_queue(self, frame_size):
> +        """
> +        check each queue has receive packets
> +        """
> +        out = self.dut.send_expect("stop", "testpmd> ", 60)
> +        p = re.compile("RX Port= 0/Queue= (\d+) -> TX Port= 0/Queue=
> \d+.*\n.*RX-packets:\s?(\d+).*TX-packets:\s?(\d+)")
> +        res = p.findall(out)
> +        self.res_queues = sorted([int(i[0]) for i in res])
> +        self.res_rx_pkts = [int(i[1]) for i in res]
> +        self.res_tx_pkts = [int(i[2]) for i in res]
> +        self.verify(self.res_queues == list(range(self.queue_number)),
> +                    "frame_size: %s, expect %s queues to handle packets, result %s
> queues" % (frame_size, list(range(self.queue_number)), self.res_queues))
> +        self.verify(all(self.res_rx_pkts), "each queue should has rx packets,
> result: %s" % self.res_rx_pkts)
> +        self.verify(all(self.res_tx_pkts), "each queue should has tx packets,
> result: %s" % self.res_tx_pkts)
> +        self.dut.send_expect("start", "testpmd> ", 60)
> +
> +    def close_all_testpmd(self):
> +        """
> +        close testpmd about vhost-user and vm_testpmd
> +        """
> +        self.vhost.send_expect("quit", "#", 60)
> +        self.dut.send_expect("quit", "#", 60)
> +
> +    def
> test_perf_pvp_2queues_test_with_packed_ring_mergeable_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="packed_ring_mergeable")
> +        self.send_and_verify("packed_ring_mergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_packed_ring_nonmergeable_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="packed_ring_nonmergeable")
> +        self.send_and_verify("packed_ring_nonmergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_split_ring_inorder_mergeable_path(sel
> f):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="split_ring_inorder_mergeable")
> +        self.send_and_verify("split_ring_inorder_mergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_split_ring_inorder_nonmergeable_path
> (self):
> +        self.start_vhost_testpmd()
> +
> self.start_virtio_user_testpmd(flag="split_ring_inorder_nonmergeable")
> +        self.send_and_verify("split_ring_inorder_nonmergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def test_perf_pvp_2queues_test_with_split_ring_mergeable_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="split_ring_mergeable")
> +        self.send_and_verify("split_ring_mergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_split_ring_nonmergeable_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="split_ring_nonmergeable")
> +        self.send_and_verify("split_ring_nonmergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def test_perf_pvp_2queues_test_with_split_ring_vector_rx_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="split_ring_vector_rx")
> +        self.send_and_verify("split_ring_vector_rx")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_packed_ring_inorder_mergeable_path(
> self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="packed_ring_inorder_mergeable")
> +        self.send_and_verify("packed_ring_inorder_mergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_packed_ring_inorder_nonmergeable_p
> ath(self):
> +        self.start_vhost_testpmd()
> +
> self.start_virtio_user_testpmd(flag="packed_ring_inorder_nonmergeable")
> +        self.send_and_verify("packed_ring_inorder_nonmergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def tear_down(self):
> +        """
> +        Run after each test case.
> +        """
> +        self.dut.kill_all()
> +        time.sleep(2)
> +
> +    def tear_down_all(self):
> +        """
> +        Run after each test suite.
> +        """
> +        self.dut.close_session(self.vhost)
> --
> 1.8.3.1


[-- Attachment #2: TestPVPVirtioUserMultiQueuesPortRestart.log --]
[-- Type: application/octet-stream, Size: 181816 bytes --]

31/03/2020 15:39:21                            dts: 
TEST SUITE : TestPVPVirtioUserMultiQueuesPortRestart
31/03/2020 15:39:21                            dts: NIC :        fortville_spirit
31/03/2020 15:39:21              dut.10.240.183.61: 
31/03/2020 15:39:21                         tester: 
31/03/2020 15:39:21                         tester: ls -d /tmp
31/03/2020 15:39:21                         tester: /tmp
31/03/2020 15:39:23              dut.10.240.183.61: kill_all: called by dut and has no prefix list.
31/03/2020 15:39:23 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_packed_ring_inorder_mergeable_path Begin
31/03/2020 15:39:23              dut.10.240.183.61: 
31/03/2020 15:39:24                         tester: 
31/03/2020 15:39:24              dut.10.240.183.61: rm -rf ./vhost.out
31/03/2020 15:39:24              dut.10.240.183.61: 
31/03/2020 15:39:24              dut.10.240.183.61: killall -s INT testpmd
31/03/2020 15:39:24              dut.10.240.183.61: testpmd: no process found
31/03/2020 15:39:24              dut.10.240.183.61: rm -rf ./vhost-net*
31/03/2020 15:39:24              dut.10.240.183.61: 
31/03/2020 15:39:25              dut.10.240.183.61: x86_64-native-linuxapp-gcc/app/testpmd -l 23,24,25 -n 4   --file-prefix=virtio_222123_20200331153848 --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,packed_vq=1 -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2 --rss-ip
31/03/2020 15:39:25              dut.10.240.183.61: EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/virtio_222123_20200331153848/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=163456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 1)
Port 0: 00:01:02:03:04:05
Checking link statuses...
Done
31/03/2020 15:39:25              dut.10.240.183.61: set fwd mac
31/03/2020 15:39:25              dut.10.240.183.61: set fwd mac
Set mac packet forwarding mode
31/03/2020 15:39:25              dut.10.240.183.61: start
31/03/2020 15:39:26              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:39:26 TestPVPVirtioUserMultiQueuesPortRestart: Running test test_perf_pvp_2queues_test_with_packed_ring_inorder_mergeable_path, and 64 frame size.
31/03/2020 15:39:26                         tester: ls -d /tmp
31/03/2020 15:39:26                         tester: /tmp
31/03/2020 15:39:26                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:39:27                         pktgen: test port 0 map gen port 0
31/03/2020 15:39:27                         pktgen: test port 0 map gen port 0
31/03/2020 15:39:27                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:39:27                         pktgen: trex port <0> not support flow control
31/03/2020 15:39:27                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:39:27                         pktgen: begin traffic ......
31/03/2020 15:39:27                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:39:32                         pktgen: traffic completed. 
31/03/2020 15:39:32                         pktgen: begin traffic ......
31/03/2020 15:39:32                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:39:42                         pktgen: begin get port statistic ...
31/03/2020 15:39:42                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:39:42                         pktgen: {0: {'ibytes': 10677675008,
     'ierrors': 0,
     'ipackets': 166838704,
     'obytes': 27334973056,
     'oerrors': 0,
     'opackets': 427109007,
     'rx_bps': 8543475712.0,
     'rx_bps_L1': 11213313792.0,
     'rx_pps': 16686488.0,
     'rx_util': 28.03328448,
     'tx_bps': 21852424192.0,
     'tx_bps_L1': 28681307392.0,
     'tx_pps': 42680520.0,
     'tx_util': 71.70326848},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.118642807006836,
            'cpu_util': 98.26929473876953,
            'queue_full': 12013399,
            'rx_bps': 8543475712.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 13308948480.0,
            'rx_pps': 16686488.0,
            'tx_bps': 21852424192.0,
            'tx_pps': 42680520.0},
 'latency': {},
 'total': {'ibytes': 10677675008,
           'ierrors': 0,
           'ipackets': 166838704,
           'obytes': 27334973056,
           'oerrors': 0,
           'opackets': 427109007,
           'rx_bps': 8543475712.0,
           'rx_bps_L1': 11213313792.0,
           'rx_pps': 16686488.0,
           'rx_util': 28.03328448,
           'tx_bps': 21852424192.0,
           'tx_bps_L1': 28681307392.0,
           'tx_pps': 42680520.0,
           'tx_util': 71.70326848}}
31/03/2020 15:39:42                         pktgen: {'ibytes': 10677675008,
 'ierrors': 0,
 'ipackets': 166838704,
 'obytes': 27334973056,
 'oerrors': 0,
 'opackets': 427109007,
 'rx_bps': 8543475712.0,
 'rx_bps_L1': 11213313792.0,
 'rx_pps': 16686488.0,
 'rx_util': 28.03328448,
 'tx_bps': 21852424192.0,
 'tx_bps_L1': 28681307392.0,
 'tx_pps': 42680520.0,
 'tx_util': 71.70326848}
31/03/2020 15:39:42                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21852424192.000000, tx_pps: 42680520.000000 
31/03/2020 15:39:42                         pktgen: {'ibytes': 10677675008,
 'ierrors': 0,
 'ipackets': 166838704,
 'obytes': 27334973056,
 'oerrors': 0,
 'opackets': 427109007,
 'rx_bps': 8543475712.0,
 'rx_bps_L1': 11213313792.0,
 'rx_pps': 16686488.0,
 'rx_util': 28.03328448,
 'tx_bps': 21852424192.0,
 'tx_bps_L1': 28681307392.0,
 'tx_pps': 42680520.0,
 'tx_util': 71.70326848}
31/03/2020 15:39:42                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 8543475712.000000, rx_pps: 16686488.000000
31/03/2020 15:39:42                         pktgen: throughput: pps_rx 16686488.000000, bps_rx 8543475712.000000
31/03/2020 15:39:42                         pktgen: traffic completed. 
31/03/2020 15:39:42              dut.10.240.183.61: stop
31/03/2020 15:39:42              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 125689757      TX-packets: 125575318      TX-dropped: 114439        

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 125690167      TX-packets: 125524676      TX-dropped: 165491        

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 251379924      RX-dropped: 0             RX-total: 251379924
  TX-packets: 251099994      TX-dropped: 279930        TX-total: 251379924
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 251379924      RX-dropped: 0             RX-total: 251379924
  TX-packets: 251099994      TX-dropped: 279930        TX-total: 251379924
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:39:42              dut.10.240.183.61: start
31/03/2020 15:39:42              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:39:45                         tester: ls -d /tmp
31/03/2020 15:39:45                         tester: /tmp
31/03/2020 15:39:45                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:39:47                         pktgen: test port 0 map gen port 0
31/03/2020 15:39:47                         pktgen: test port 0 map gen port 0
31/03/2020 15:39:47                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:39:47                         pktgen: trex port <0> not support flow control
31/03/2020 15:39:47                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:39:47                         pktgen: begin traffic ......
31/03/2020 15:39:47                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:39:52                         pktgen: traffic completed. 
31/03/2020 15:39:52                         pktgen: begin traffic ......
31/03/2020 15:39:52                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:40:02                         pktgen: begin get port statistic ...
31/03/2020 15:40:02                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:40:02                         pktgen: {0: {'ibytes': 9835011008,
     'ierrors': 0,
     'ipackets': 153672077,
     'obytes': 27350831808,
     'oerrors': 0,
     'opackets': 427356800,
     'rx_bps': 7854215168.0,
     'rx_bps_L1': 10308657088.0,
     'rx_pps': 15340262.0,
     'rx_util': 25.77164272,
     'tx_bps': 21845602304.0,
     'tx_bps_L1': 28672353024.0,
     'tx_pps': 42667192.0,
     'tx_util': 71.68088256},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.088395118713379,
            'cpu_util': 98.50659942626953,
            'queue_full': 12075528,
            'rx_bps': 7854215168.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 13991387136.0,
            'rx_pps': 15340262.0,
            'tx_bps': 21845602304.0,
            'tx_pps': 42667192.0},
 'latency': {},
 'total': {'ibytes': 9835011008,
           'ierrors': 0,
           'ipackets': 153672077,
           'obytes': 27350831808,
           'oerrors': 0,
           'opackets': 427356800,
           'rx_bps': 7854215168.0,
           'rx_bps_L1': 10308657088.0,
           'rx_pps': 15340262.0,
           'rx_util': 25.77164272,
           'tx_bps': 21845602304.0,
           'tx_bps_L1': 28672353024.0,
           'tx_pps': 42667192.0,
           'tx_util': 71.68088256}}
31/03/2020 15:40:02                         pktgen: {'ibytes': 9835011008,
 'ierrors': 0,
 'ipackets': 153672077,
 'obytes': 27350831808,
 'oerrors': 0,
 'opackets': 427356800,
 'rx_bps': 7854215168.0,
 'rx_bps_L1': 10308657088.0,
 'rx_pps': 15340262.0,
 'rx_util': 25.77164272,
 'tx_bps': 21845602304.0,
 'tx_bps_L1': 28672353024.0,
 'tx_pps': 42667192.0,
 'tx_util': 71.68088256}
31/03/2020 15:40:02                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21845602304.000000, tx_pps: 42667192.000000 
31/03/2020 15:40:02                         pktgen: {'ibytes': 9835011008,
 'ierrors': 0,
 'ipackets': 153672077,
 'obytes': 27350831808,
 'oerrors': 0,
 'opackets': 427356800,
 'rx_bps': 7854215168.0,
 'rx_bps_L1': 10308657088.0,
 'rx_pps': 15340262.0,
 'rx_util': 25.77164272,
 'tx_bps': 21845602304.0,
 'tx_bps_L1': 28672353024.0,
 'tx_pps': 42667192.0,
 'tx_util': 71.68088256}
31/03/2020 15:40:02                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 7854215168.000000, rx_pps: 15340262.000000
31/03/2020 15:40:02                         pktgen: throughput: pps_rx 15340262.000000, bps_rx 7854215168.000000
31/03/2020 15:40:02                         pktgen: traffic completed. 
31/03/2020 15:40:02              dut.10.240.183.61: stop
31/03/2020 15:40:02              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 114957048      TX-packets: 114906322      TX-dropped: 50726         

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 116012201      TX-packets: 115864226      TX-dropped: 147975        

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 230969249      RX-dropped: 0             RX-total: 230969249
  TX-packets: 230770548      TX-dropped: 198701        TX-total: 230969249
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 230969249      RX-dropped: 0             RX-total: 230969249
  TX-packets: 230770548      TX-dropped: 198701        TX-total: 230969249
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:40:02              dut.10.240.183.61: start
31/03/2020 15:40:02              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:40:03              dut.10.240.183.61: quit
31/03/2020 15:40:04              dut.10.240.183.61: quit
Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.

Stopping port 0...
Stopping ports...
Done

Shutting down port 0...
Closing ports...
31/03/2020 15:40:04 TestPVPVirtioUserMultiQueuesPortRestart: 
+--------------+-------------------------------+------------------+------------+----------------+
| FrameSize(B) |             Mode              | Throughput(Mpps) | % linerate |     Cycle      |
+==============+===============================+==================+============+================+
| 64           | packed_ring_inorder_mergeable | 16.686           | 28.033     | Before Restart |
+--------------+-------------------------------+------------------+------------+----------------+
| 64           | packed_ring_inorder_mergeable | 15.340           | 25.772     | After Restart  |
+--------------+-------------------------------+------------------+------------+----------------+
31/03/2020 15:40:04 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_packed_ring_inorder_mergeable_path Result PASSED:
31/03/2020 15:40:04              dut.10.240.183.61: kill_all: called by dut and prefix list has value.
31/03/2020 15:40:07 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_packed_ring_inorder_nonmergeable_path Begin
31/03/2020 15:40:07              dut.10.240.183.61:  
31/03/2020 15:40:07                         tester: 
31/03/2020 15:40:07              dut.10.240.183.61: rm -rf ./vhost.out
31/03/2020 15:40:08              dut.10.240.183.61: 
31/03/2020 15:40:08              dut.10.240.183.61: killall -s INT testpmd
31/03/2020 15:40:08              dut.10.240.183.61: testpmd: no process found
31/03/2020 15:40:08              dut.10.240.183.61: rm -rf ./vhost-net*
31/03/2020 15:40:08              dut.10.240.183.61: 
31/03/2020 15:40:09              dut.10.240.183.61: x86_64-native-linuxapp-gcc/app/testpmd -l 23,24,25 -n 4   --file-prefix=virtio_222123_20200331153848 --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,packed_vq=1,mrg_rxbuf=0 -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2 --rss-ip
31/03/2020 15:40:09              dut.10.240.183.61: EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/virtio_222123_20200331153848/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=163456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 1)
Port 0: 00:01:02:03:04:05
Checking link statuses...
Done
31/03/2020 15:40:09              dut.10.240.183.61: set fwd mac
31/03/2020 15:40:09              dut.10.240.183.61: set fwd mac
Set mac packet forwarding mode
31/03/2020 15:40:09              dut.10.240.183.61: start
31/03/2020 15:40:09              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:40:09 TestPVPVirtioUserMultiQueuesPortRestart: Running test test_perf_pvp_2queues_test_with_packed_ring_inorder_nonmergeable_path, and 64 frame size.
31/03/2020 15:40:09                         tester: ls -d /tmp
31/03/2020 15:40:10                         tester: /tmp
31/03/2020 15:40:10                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:40:11                         pktgen: test port 0 map gen port 0
31/03/2020 15:40:11                         pktgen: test port 0 map gen port 0
31/03/2020 15:40:11                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:40:11                         pktgen: trex port <0> not support flow control
31/03/2020 15:40:11                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:40:11                         pktgen: begin traffic ......
31/03/2020 15:40:11                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:40:16                         pktgen: traffic completed. 
31/03/2020 15:40:16                         pktgen: begin traffic ......
31/03/2020 15:40:16                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:40:26                         pktgen: begin get port statistic ...
31/03/2020 15:40:26                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:40:26                         pktgen: {0: {'ibytes': 10783860992,
     'ierrors': 0,
     'ipackets': 168497860,
     'obytes': 27364894336,
     'oerrors': 0,
     'opackets': 427576533,
     'rx_bps': 8608408576.0,
     'rx_bps_L1': 11298534656.0,
     'rx_pps': 16813288.0,
     'rx_util': 28.246336640000003,
     'tx_bps': 21863970816.0,
     'tx_bps_L1': 28696461056.000004,
     'tx_pps': 42703064.0,
     'tx_util': 71.74115264000001},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.15357780456543,
            'cpu_util': 98.01325988769531,
            'queue_full': 11979692,
            'rx_bps': 8608408576.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 13255562240.0,
            'rx_pps': 16813288.0,
            'tx_bps': 21863970816.0,
            'tx_pps': 42703064.0},
 'latency': {},
 'total': {'ibytes': 10783860992,
           'ierrors': 0,
           'ipackets': 168497860,
           'obytes': 27364894336,
           'oerrors': 0,
           'opackets': 427576533,
           'rx_bps': 8608408576.0,
           'rx_bps_L1': 11298534656.0,
           'rx_pps': 16813288.0,
           'rx_util': 28.246336640000003,
           'tx_bps': 21863970816.0,
           'tx_bps_L1': 28696461056.000004,
           'tx_pps': 42703064.0,
           'tx_util': 71.74115264000001}}
31/03/2020 15:40:26                         pktgen: {'ibytes': 10783860992,
 'ierrors': 0,
 'ipackets': 168497860,
 'obytes': 27364894336,
 'oerrors': 0,
 'opackets': 427576533,
 'rx_bps': 8608408576.0,
 'rx_bps_L1': 11298534656.0,
 'rx_pps': 16813288.0,
 'rx_util': 28.246336640000003,
 'tx_bps': 21863970816.0,
 'tx_bps_L1': 28696461056.000004,
 'tx_pps': 42703064.0,
 'tx_util': 71.74115264000001}
31/03/2020 15:40:26                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21863970816.000000, tx_pps: 42703064.000000 
31/03/2020 15:40:26                         pktgen: {'ibytes': 10783860992,
 'ierrors': 0,
 'ipackets': 168497860,
 'obytes': 27364894336,
 'oerrors': 0,
 'opackets': 427576533,
 'rx_bps': 8608408576.0,
 'rx_bps_L1': 11298534656.0,
 'rx_pps': 16813288.0,
 'rx_util': 28.246336640000003,
 'tx_bps': 21863970816.0,
 'tx_bps_L1': 28696461056.000004,
 'tx_pps': 42703064.0,
 'tx_util': 71.74115264000001}
31/03/2020 15:40:26                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 8608408576.000000, rx_pps: 16813288.000000
31/03/2020 15:40:26                         pktgen: throughput: pps_rx 16813288.000000, bps_rx 8608408576.000000
31/03/2020 15:40:26                         pktgen: traffic completed. 
31/03/2020 15:40:26              dut.10.240.183.61: stop
31/03/2020 15:40:26              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 126850903      TX-packets: 126679143      TX-dropped: 171760        

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 126459118      TX-packets: 126314166      TX-dropped: 144952        

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 253310021      RX-dropped: 0             RX-total: 253310021
  TX-packets: 252993309      TX-dropped: 316712        TX-total: 253310021
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 253310021      RX-dropped: 0             RX-total: 253310021
  TX-packets: 252993309      TX-dropped: 316712        TX-total: 253310021
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:40:26              dut.10.240.183.61: start
31/03/2020 15:40:26              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:40:29                         tester: ls -d /tmp
31/03/2020 15:40:29                         tester: /tmp
31/03/2020 15:40:29                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:40:31                         pktgen: test port 0 map gen port 0
31/03/2020 15:40:31                         pktgen: test port 0 map gen port 0
31/03/2020 15:40:31                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:40:31                         pktgen: trex port <0> not support flow control
31/03/2020 15:40:31                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:40:31                         pktgen: begin traffic ......
31/03/2020 15:40:31                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:40:36                         pktgen: traffic completed. 
31/03/2020 15:40:36                         pktgen: begin traffic ......
31/03/2020 15:40:36                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:40:46                         pktgen: begin get port statistic ...
31/03/2020 15:40:46                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:40:46                         pktgen: {0: {'ibytes': 9855985984,
     'ierrors': 0,
     'ipackets': 153999818,
     'obytes': 27366326400,
     'oerrors': 0,
     'opackets': 427598900,
     'rx_bps': 7866627072.0,
     'rx_bps_L1': 10324946592.0,
     'rx_pps': 15364497.0,
     'rx_util': 25.812366479999998,
     'tx_bps': 21850935296.0,
     'tx_bps_L1': 28679351936.0,
     'tx_pps': 42677604.0,
     'tx_util': 71.69837984},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.078104019165039,
            'cpu_util': 98.62217712402344,
            'queue_full': 12008324,
            'rx_bps': 7866627072.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 13984308224.0,
            'rx_pps': 15364497.0,
            'tx_bps': 21850935296.0,
            'tx_pps': 42677604.0},
 'latency': {},
 'total': {'ibytes': 9855985984,
           'ierrors': 0,
           'ipackets': 153999818,
           'obytes': 27366326400,
           'oerrors': 0,
           'opackets': 427598900,
           'rx_bps': 7866627072.0,
           'rx_bps_L1': 10324946592.0,
           'rx_pps': 15364497.0,
           'rx_util': 25.812366479999998,
           'tx_bps': 21850935296.0,
           'tx_bps_L1': 28679351936.0,
           'tx_pps': 42677604.0,
           'tx_util': 71.69837984}}
31/03/2020 15:40:46                         pktgen: {'ibytes': 9855985984,
 'ierrors': 0,
 'ipackets': 153999818,
 'obytes': 27366326400,
 'oerrors': 0,
 'opackets': 427598900,
 'rx_bps': 7866627072.0,
 'rx_bps_L1': 10324946592.0,
 'rx_pps': 15364497.0,
 'rx_util': 25.812366479999998,
 'tx_bps': 21850935296.0,
 'tx_bps_L1': 28679351936.0,
 'tx_pps': 42677604.0,
 'tx_util': 71.69837984}
31/03/2020 15:40:46                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21850935296.000000, tx_pps: 42677604.000000 
31/03/2020 15:40:46                         pktgen: {'ibytes': 9855985984,
 'ierrors': 0,
 'ipackets': 153999818,
 'obytes': 27366326400,
 'oerrors': 0,
 'opackets': 427598900,
 'rx_bps': 7866627072.0,
 'rx_bps_L1': 10324946592.0,
 'rx_pps': 15364497.0,
 'rx_util': 25.812366479999998,
 'tx_bps': 21850935296.0,
 'tx_bps_L1': 28679351936.0,
 'tx_pps': 42677604.0,
 'tx_util': 71.69837984}
31/03/2020 15:40:46                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 7866627072.000000, rx_pps: 15364497.000000
31/03/2020 15:40:46                         pktgen: throughput: pps_rx 15364497.000000, bps_rx 7866627072.000000
31/03/2020 15:40:46                         pktgen: traffic completed. 
31/03/2020 15:40:46              dut.10.240.183.61: stop
31/03/2020 15:40:46              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 115840695      TX-packets: 115674806      TX-dropped: 165889        

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 115626083      TX-packets: 115600445      TX-dropped: 25638         

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 231466778      RX-dropped: 0             RX-total: 231466778
  TX-packets: 231275251      TX-dropped: 191527        TX-total: 231466778
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 231466778      RX-dropped: 0             RX-total: 231466778
  TX-packets: 231275251      TX-dropped: 191527        TX-total: 231466778
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:40:46              dut.10.240.183.61: start
31/03/2020 15:40:46              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:40:47              dut.10.240.183.61: quit
31/03/2020 15:40:48              dut.10.240.183.61: quit
Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.

Stopping port 0...
Stopping ports...
Done

Shutting down port 0...
Closing ports...
31/03/2020 15:40:48 TestPVPVirtioUserMultiQueuesPortRestart: 
+--------------+----------------------------------+------------------+------------+----------------+
| FrameSize(B) |               Mode               | Throughput(Mpps) | % linerate |     Cycle      |
+==============+==================================+==================+============+================+
| 64           | packed_ring_inorder_nonmergeable | 16.813           | 28.246     | Before Restart |
+--------------+----------------------------------+------------------+------------+----------------+
| 64           | packed_ring_inorder_nonmergeable | 15.364           | 25.812     | After Restart  |
+--------------+----------------------------------+------------------+------------+----------------+
31/03/2020 15:40:48 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_packed_ring_inorder_nonmergeable_path Result PASSED:
31/03/2020 15:40:48              dut.10.240.183.61: kill_all: called by dut and prefix list has value.
31/03/2020 15:40:51 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_packed_ring_mergeable_path Begin
31/03/2020 15:40:51              dut.10.240.183.61:  
31/03/2020 15:40:51                         tester: 
31/03/2020 15:40:51              dut.10.240.183.61: rm -rf ./vhost.out
31/03/2020 15:40:51              dut.10.240.183.61: 
31/03/2020 15:40:51              dut.10.240.183.61: killall -s INT testpmd
31/03/2020 15:40:52              dut.10.240.183.61: testpmd: no process found
31/03/2020 15:40:52              dut.10.240.183.61: rm -rf ./vhost-net*
31/03/2020 15:40:52              dut.10.240.183.61: 
31/03/2020 15:40:52              dut.10.240.183.61: x86_64-native-linuxapp-gcc/app/testpmd -l 23,24,25 -n 4   --file-prefix=virtio_222123_20200331153848 --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,packed_vq=1,in_order=0 -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2 --rss-ip
31/03/2020 15:40:53              dut.10.240.183.61: EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/virtio_222123_20200331153848/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=163456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 1)
Port 0: 00:01:02:03:04:05
Checking link statuses...
Done
31/03/2020 15:40:53              dut.10.240.183.61: set fwd mac
31/03/2020 15:40:53              dut.10.240.183.61: set fwd mac
Set mac packet forwarding mode
31/03/2020 15:40:53              dut.10.240.183.61: start
31/03/2020 15:40:53              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:40:53 TestPVPVirtioUserMultiQueuesPortRestart: Running test test_perf_pvp_2queues_test_with_packed_ring_mergeable_path, and 64 frame size.
31/03/2020 15:40:53                         tester: ls -d /tmp
31/03/2020 15:40:53                         tester: /tmp
31/03/2020 15:40:53                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:40:55                         pktgen: test port 0 map gen port 0
31/03/2020 15:40:55                         pktgen: test port 0 map gen port 0
31/03/2020 15:40:55                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:40:55                         pktgen: trex port <0> not support flow control
31/03/2020 15:40:55                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:40:55                         pktgen: begin traffic ......
31/03/2020 15:40:55                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:41:00                         pktgen: traffic completed. 
31/03/2020 15:41:00                         pktgen: begin traffic ......
31/03/2020 15:41:00                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:41:10                         pktgen: begin get port statistic ...
31/03/2020 15:41:10                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:41:10                         pktgen: {0: {'ibytes': 10348049024,
     'ierrors': 0,
     'ipackets': 161688266,
     'obytes': 27339186880,
     'oerrors': 0,
     'opackets': 427174855,
     'rx_bps': 8266870272.0,
     'rx_bps_L1': 10850267392.0,
     'rx_pps': 16146232.0,
     'rx_util': 27.125668479999998,
     'tx_bps': 21842440192.0,
     'tx_bps_L1': 28668202752.0,
     'tx_pps': 42661016.0,
     'tx_util': 71.67050687999999},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.12826919555664,
            'cpu_util': 98.1394271850586,
            'queue_full': 11988215,
            'rx_bps': 8266870272.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 13575569408.0,
            'rx_pps': 16146232.0,
            'tx_bps': 21842440192.0,
            'tx_pps': 42661016.0},
 'latency': {},
 'total': {'ibytes': 10348049024,
           'ierrors': 0,
           'ipackets': 161688266,
           'obytes': 27339186880,
           'oerrors': 0,
           'opackets': 427174855,
           'rx_bps': 8266870272.0,
           'rx_bps_L1': 10850267392.0,
           'rx_pps': 16146232.0,
           'rx_util': 27.125668479999998,
           'tx_bps': 21842440192.0,
           'tx_bps_L1': 28668202752.0,
           'tx_pps': 42661016.0,
           'tx_util': 71.67050687999999}}
31/03/2020 15:41:10                         pktgen: {'ibytes': 10348049024,
 'ierrors': 0,
 'ipackets': 161688266,
 'obytes': 27339186880,
 'oerrors': 0,
 'opackets': 427174855,
 'rx_bps': 8266870272.0,
 'rx_bps_L1': 10850267392.0,
 'rx_pps': 16146232.0,
 'rx_util': 27.125668479999998,
 'tx_bps': 21842440192.0,
 'tx_bps_L1': 28668202752.0,
 'tx_pps': 42661016.0,
 'tx_util': 71.67050687999999}
31/03/2020 15:41:10                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21842440192.000000, tx_pps: 42661016.000000 
31/03/2020 15:41:10                         pktgen: {'ibytes': 10348049024,
 'ierrors': 0,
 'ipackets': 161688266,
 'obytes': 27339186880,
 'oerrors': 0,
 'opackets': 427174855,
 'rx_bps': 8266870272.0,
 'rx_bps_L1': 10850267392.0,
 'rx_pps': 16146232.0,
 'rx_util': 27.125668479999998,
 'tx_bps': 21842440192.0,
 'tx_bps_L1': 28668202752.0,
 'tx_pps': 42661016.0,
 'tx_util': 71.67050687999999}
31/03/2020 15:41:10                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 8266870272.000000, rx_pps: 16146232.000000
31/03/2020 15:41:10                         pktgen: throughput: pps_rx 16146232.000000, bps_rx 8266870272.000000
31/03/2020 15:41:10                         pktgen: traffic completed. 
31/03/2020 15:41:10              dut.10.240.183.61: stop
31/03/2020 15:41:10              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 121522839      TX-packets: 121507747      TX-dropped: 15092         

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 121184332      TX-packets: 121183396      TX-dropped: 936           

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 242707171      RX-dropped: 0             RX-total: 242707171
  TX-packets: 242691143      TX-dropped: 16028         TX-total: 242707171
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 242707171      RX-dropped: 0             RX-total: 242707171
  TX-packets: 242691143      TX-dropped: 16028         TX-total: 242707171
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:41:10              dut.10.240.183.61: start
31/03/2020 15:41:10              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:45:41                         tester: ls -d /tmp
31/03/2020 15:45:41                         tester: /tmp
31/03/2020 15:45:41                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:45:43                         pktgen: test port 0 map gen port 0
31/03/2020 15:45:43                         pktgen: test port 0 map gen port 0
31/03/2020 15:45:43                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:45:43                         pktgen: trex port <0> not support flow control
31/03/2020 15:45:43                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:45:43                         pktgen: begin traffic ......
31/03/2020 15:45:43                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:45:48                         pktgen: traffic completed. 
31/03/2020 15:45:48                         pktgen: begin traffic ......
31/03/2020 15:45:48                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:45:58                         pktgen: begin get port statistic ...
31/03/2020 15:45:58                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:45:58                         pktgen: {0: {'ibytes': 9720822656,
     'ierrors': 0,
     'ipackets': 151887857,
     'obytes': 27319809408,
     'oerrors': 0,
     'opackets': 426872074,
     'rx_bps': 7776747008.0,
     'rx_bps_L1': 10206979648.0,
     'rx_pps': 15188954.0,
     'rx_util': 25.517449120000002,
     'tx_bps': 21853208576.0,
     'tx_bps_L1': 28682336256.0,
     'tx_pps': 42682048.0,
     'tx_util': 71.70584063999999},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.16845703125,
            'cpu_util': 97.83450317382812,
            'queue_full': 11979635,
            'rx_bps': 7776747008.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14076462080.0,
            'rx_pps': 15188954.0,
            'tx_bps': 21853208576.0,
            'tx_pps': 42682048.0},
 'latency': {},
 'total': {'ibytes': 9720822656,
           'ierrors': 0,
           'ipackets': 151887857,
           'obytes': 27319809408,
           'oerrors': 0,
           'opackets': 426872074,
           'rx_bps': 7776747008.0,
           'rx_bps_L1': 10206979648.0,
           'rx_pps': 15188954.0,
           'rx_util': 25.517449120000002,
           'tx_bps': 21853208576.0,
           'tx_bps_L1': 28682336256.0,
           'tx_pps': 42682048.0,
           'tx_util': 71.70584063999999}}
31/03/2020 15:45:58                         pktgen: {'ibytes': 9720822656,
 'ierrors': 0,
 'ipackets': 151887857,
 'obytes': 27319809408,
 'oerrors': 0,
 'opackets': 426872074,
 'rx_bps': 7776747008.0,
 'rx_bps_L1': 10206979648.0,
 'rx_pps': 15188954.0,
 'rx_util': 25.517449120000002,
 'tx_bps': 21853208576.0,
 'tx_bps_L1': 28682336256.0,
 'tx_pps': 42682048.0,
 'tx_util': 71.70584063999999}
31/03/2020 15:45:58                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21853208576.000000, tx_pps: 42682048.000000 
31/03/2020 15:45:58                         pktgen: {'ibytes': 9720822656,
 'ierrors': 0,
 'ipackets': 151887857,
 'obytes': 27319809408,
 'oerrors': 0,
 'opackets': 426872074,
 'rx_bps': 7776747008.0,
 'rx_bps_L1': 10206979648.0,
 'rx_pps': 15188954.0,
 'rx_util': 25.517449120000002,
 'tx_bps': 21853208576.0,
 'tx_bps_L1': 28682336256.0,
 'tx_pps': 42682048.0,
 'tx_util': 71.70584063999999}
31/03/2020 15:45:58                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 7776747008.000000, rx_pps: 15188954.000000
31/03/2020 15:45:58                         pktgen: throughput: pps_rx 15188954.000000, bps_rx 7776747008.000000
31/03/2020 15:45:58                         pktgen: traffic completed. 
31/03/2020 15:45:58              dut.10.240.183.61: stop
31/03/2020 15:45:58              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 111957719      TX-packets: 111957129      TX-dropped: 590           

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 117242151      TX-packets: 117241653      TX-dropped: 498           

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 229199870      RX-dropped: 0             RX-total: 229199870
  TX-packets: 229198782      TX-dropped: 1088          TX-total: 229199870
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 229199870      RX-dropped: 0             RX-total: 229199870
  TX-packets: 229198782      TX-dropped: 1088          TX-total: 229199870
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:45:58              dut.10.240.183.61: start
31/03/2020 15:45:58              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:45:59              dut.10.240.183.61: quit
31/03/2020 15:46:00              dut.10.240.183.61: quit
Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.

Stopping port 0...
Stopping ports...
Done

Shutting down port 0...
Closing ports...
31/03/2020 15:46:00 TestPVPVirtioUserMultiQueuesPortRestart: 
+--------------+-----------------------+------------------+------------+----------------+
| FrameSize(B) |         Mode          | Throughput(Mpps) | % linerate |     Cycle      |
+==============+=======================+==================+============+================+
| 64           | packed_ring_mergeable | 16.146           | 27.126     | Before Restart |
+--------------+-----------------------+------------------+------------+----------------+
| 64           | packed_ring_mergeable | 15.189           | 25.517     | After Restart  |
+--------------+-----------------------+------------------+------------+----------------+
31/03/2020 15:46:00 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_packed_ring_mergeable_path Result PASSED:
31/03/2020 15:46:00              dut.10.240.183.61: kill_all: called by dut and prefix list has value.
31/03/2020 15:46:03 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_packed_ring_nonmergeable_path Begin
31/03/2020 15:46:03              dut.10.240.183.61:  
31/03/2020 15:46:03                         tester: 
31/03/2020 15:46:03              dut.10.240.183.61: rm -rf ./vhost.out
31/03/2020 15:46:03              dut.10.240.183.61: 
31/03/2020 15:46:03              dut.10.240.183.61: killall -s INT testpmd
31/03/2020 15:46:04              dut.10.240.183.61: testpmd: no process found
31/03/2020 15:46:04              dut.10.240.183.61: rm -rf ./vhost-net*
31/03/2020 15:46:04              dut.10.240.183.61: 
31/03/2020 15:46:04              dut.10.240.183.61: x86_64-native-linuxapp-gcc/app/testpmd -l 23,24,25 -n 4   --file-prefix=virtio_222123_20200331153848 --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,packed_vq=1,mrg_rxbuf=0,in_order=0 -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2 --rss-ip
31/03/2020 15:46:06              dut.10.240.183.61: EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/virtio_222123_20200331153848/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=163456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 1)
Port 0: 00:01:02:03:04:05
Checking link statuses...
Done
31/03/2020 15:46:06              dut.10.240.183.61: set fwd mac
31/03/2020 15:46:06              dut.10.240.183.61: set fwd mac
Set mac packet forwarding mode
31/03/2020 15:46:06              dut.10.240.183.61: start
31/03/2020 15:46:06              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:46:06 TestPVPVirtioUserMultiQueuesPortRestart: Running test test_perf_pvp_2queues_test_with_packed_ring_nonmergeable_path, and 64 frame size.
31/03/2020 15:46:06                         tester: ls -d /tmp
31/03/2020 15:46:06                         tester: /tmp
31/03/2020 15:46:06                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:46:07                         pktgen: test port 0 map gen port 0
31/03/2020 15:46:07                         pktgen: test port 0 map gen port 0
31/03/2020 15:46:07                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:46:07                         pktgen: trex port <0> not support flow control
31/03/2020 15:46:07                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:46:07                         pktgen: begin traffic ......
31/03/2020 15:46:07                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:46:12                         pktgen: traffic completed. 
31/03/2020 15:46:12                         pktgen: begin traffic ......
31/03/2020 15:46:12                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:46:23                         pktgen: begin get port statistic ...
31/03/2020 15:46:23                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:46:23                         pktgen: {0: {'ibytes': 10337994304,
     'ierrors': 0,
     'ipackets': 161531189,
     'obytes': 27326429120,
     'oerrors': 0,
     'opackets': 426975506,
     'rx_bps': 8278067200.0,
     'rx_bps_L1': 10864965920.0,
     'rx_pps': 16168117.0,
     'rx_util': 27.1624148,
     'tx_bps': 21900531712.0,
     'tx_bps_L1': 28744447231.999996,
     'tx_pps': 42774472.0,
     'tx_util': 71.86111807999998},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.148337364196777,
            'cpu_util': 98.22331237792969,
            'queue_full': 12010549,
            'rx_bps': 8278067200.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 13622463488.0,
            'rx_pps': 16168117.0,
            'tx_bps': 21900531712.0,
            'tx_pps': 42774472.0},
 'latency': {},
 'total': {'ibytes': 10337994304,
           'ierrors': 0,
           'ipackets': 161531189,
           'obytes': 27326429120,
           'oerrors': 0,
           'opackets': 426975506,
           'rx_bps': 8278067200.0,
           'rx_bps_L1': 10864965920.0,
           'rx_pps': 16168117.0,
           'rx_util': 27.1624148,
           'tx_bps': 21900531712.0,
           'tx_bps_L1': 28744447231.999996,
           'tx_pps': 42774472.0,
           'tx_util': 71.86111807999998}}
31/03/2020 15:46:23                         pktgen: {'ibytes': 10337994304,
 'ierrors': 0,
 'ipackets': 161531189,
 'obytes': 27326429120,
 'oerrors': 0,
 'opackets': 426975506,
 'rx_bps': 8278067200.0,
 'rx_bps_L1': 10864965920.0,
 'rx_pps': 16168117.0,
 'rx_util': 27.1624148,
 'tx_bps': 21900531712.0,
 'tx_bps_L1': 28744447231.999996,
 'tx_pps': 42774472.0,
 'tx_util': 71.86111807999998}
31/03/2020 15:46:23                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21900531712.000000, tx_pps: 42774472.000000 
31/03/2020 15:46:23                         pktgen: {'ibytes': 10337994304,
 'ierrors': 0,
 'ipackets': 161531189,
 'obytes': 27326429120,
 'oerrors': 0,
 'opackets': 426975506,
 'rx_bps': 8278067200.0,
 'rx_bps_L1': 10864965920.0,
 'rx_pps': 16168117.0,
 'rx_util': 27.1624148,
 'tx_bps': 21900531712.0,
 'tx_bps_L1': 28744447231.999996,
 'tx_pps': 42774472.0,
 'tx_util': 71.86111807999998}
31/03/2020 15:46:23                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 8278067200.000000, rx_pps: 16168117.000000
31/03/2020 15:46:23                         pktgen: throughput: pps_rx 16168117.000000, bps_rx 8278067200.000000
31/03/2020 15:46:23                         pktgen: traffic completed. 
31/03/2020 15:46:23              dut.10.240.183.61: stop
31/03/2020 15:46:23              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 121404323      TX-packets: 121403355      TX-dropped: 968           

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 121299223      TX-packets: 121298699      TX-dropped: 524           

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 242703546      RX-dropped: 0             RX-total: 242703546
  TX-packets: 242702054      TX-dropped: 1492          TX-total: 242703546
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 242703546      RX-dropped: 0             RX-total: 242703546
  TX-packets: 242702054      TX-dropped: 1492          TX-total: 242703546
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:46:23              dut.10.240.183.61: start
31/03/2020 15:46:23              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:46:25                         tester: ls -d /tmp
31/03/2020 15:46:26                         tester: /tmp
31/03/2020 15:46:26                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:46:27                         pktgen: test port 0 map gen port 0
31/03/2020 15:46:27                         pktgen: test port 0 map gen port 0
31/03/2020 15:46:27                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:46:27                         pktgen: trex port <0> not support flow control
31/03/2020 15:46:27                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:46:27                         pktgen: begin traffic ......
31/03/2020 15:46:27                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:46:32                         pktgen: traffic completed. 
31/03/2020 15:46:32                         pktgen: begin traffic ......
31/03/2020 15:46:32                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:46:42                         pktgen: begin get port statistic ...
31/03/2020 15:46:42                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:46:42                         pktgen: {0: {'ibytes': 9530899648,
     'ierrors': 0,
     'ipackets': 148920313,
     'obytes': 27317190400,
     'oerrors': 0,
     'opackets': 426831153,
     'rx_bps': 7642819072.0,
     'rx_bps_L1': 10031197792.0,
     'rx_pps': 14927367.0,
     'rx_util': 25.077994479999997,
     'tx_bps': 21847332864.0,
     'tx_bps_L1': 28674624384.0,
     'tx_pps': 42670572.0,
     'tx_util': 71.68656096},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.057981491088867,
            'cpu_util': 98.78535461425781,
            'queue_full': 11955310,
            'rx_bps': 7642819072.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14204513280.0,
            'rx_pps': 14927367.0,
            'tx_bps': 21847332864.0,
            'tx_pps': 42670572.0},
 'latency': {},
 'total': {'ibytes': 9530899648,
           'ierrors': 0,
           'ipackets': 148920313,
           'obytes': 27317190400,
           'oerrors': 0,
           'opackets': 426831153,
           'rx_bps': 7642819072.0,
           'rx_bps_L1': 10031197792.0,
           'rx_pps': 14927367.0,
           'rx_util': 25.077994479999997,
           'tx_bps': 21847332864.0,
           'tx_bps_L1': 28674624384.0,
           'tx_pps': 42670572.0,
           'tx_util': 71.68656096}}
31/03/2020 15:46:42                         pktgen: {'ibytes': 9530899648,
 'ierrors': 0,
 'ipackets': 148920313,
 'obytes': 27317190400,
 'oerrors': 0,
 'opackets': 426831153,
 'rx_bps': 7642819072.0,
 'rx_bps_L1': 10031197792.0,
 'rx_pps': 14927367.0,
 'rx_util': 25.077994479999997,
 'tx_bps': 21847332864.0,
 'tx_bps_L1': 28674624384.0,
 'tx_pps': 42670572.0,
 'tx_util': 71.68656096}
31/03/2020 15:46:42                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21847332864.000000, tx_pps: 42670572.000000 
31/03/2020 15:46:42                         pktgen: {'ibytes': 9530899648,
 'ierrors': 0,
 'ipackets': 148920313,
 'obytes': 27317190400,
 'oerrors': 0,
 'opackets': 426831153,
 'rx_bps': 7642819072.0,
 'rx_bps_L1': 10031197792.0,
 'rx_pps': 14927367.0,
 'rx_util': 25.077994479999997,
 'tx_bps': 21847332864.0,
 'tx_bps_L1': 28674624384.0,
 'tx_pps': 42670572.0,
 'tx_util': 71.68656096}
31/03/2020 15:46:42                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 7642819072.000000, rx_pps: 14927367.000000
31/03/2020 15:46:42                         pktgen: throughput: pps_rx 14927367.000000, bps_rx 7642819072.000000
31/03/2020 15:46:42                         pktgen: traffic completed. 
31/03/2020 15:46:42              dut.10.240.183.61: stop
31/03/2020 15:46:42              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 111713714      TX-packets: 111713280      TX-dropped: 434           

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 111715959      TX-packets: 111715617      TX-dropped: 342           

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 223429673      RX-dropped: 0             RX-total: 223429673
  TX-packets: 223428897      TX-dropped: 776           TX-total: 223429673
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 223429673      RX-dropped: 0             RX-total: 223429673
  TX-packets: 223428897      TX-dropped: 776           TX-total: 223429673
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:46:42              dut.10.240.183.61: start
31/03/2020 15:46:42              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:46:44              dut.10.240.183.61: quit
31/03/2020 15:46:45              dut.10.240.183.61: quit
Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.

Stopping port 0...
Stopping ports...
Done

Shutting down port 0...
Closing ports...
31/03/2020 15:46:45 TestPVPVirtioUserMultiQueuesPortRestart: 
+--------------+--------------------------+------------------+------------+----------------+
| FrameSize(B) |           Mode           | Throughput(Mpps) | % linerate |     Cycle      |
+==============+==========================+==================+============+================+
| 64           | packed_ring_nonmergeable | 16.168           | 27.162     | Before Restart |
+--------------+--------------------------+------------------+------------+----------------+
| 64           | packed_ring_nonmergeable | 14.927           | 25.078     | After Restart  |
+--------------+--------------------------+------------------+------------+----------------+
31/03/2020 15:46:45 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_packed_ring_nonmergeable_path Result PASSED:
31/03/2020 15:46:45              dut.10.240.183.61: kill_all: called by dut and prefix list has value.
31/03/2020 15:46:48 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_inorder_mergeable_path Begin
31/03/2020 15:46:48              dut.10.240.183.61:  
31/03/2020 15:46:48                         tester: 
31/03/2020 15:46:48              dut.10.240.183.61: rm -rf ./vhost.out
31/03/2020 15:46:48              dut.10.240.183.61: 
31/03/2020 15:46:48              dut.10.240.183.61: killall -s INT testpmd
31/03/2020 15:46:48              dut.10.240.183.61: testpmd: no process found
31/03/2020 15:46:48              dut.10.240.183.61: rm -rf ./vhost-net*
31/03/2020 15:46:48              dut.10.240.183.61: 
31/03/2020 15:46:49              dut.10.240.183.61: x86_64-native-linuxapp-gcc/app/testpmd -l 23,24,25 -n 4   --file-prefix=virtio_222123_20200331153848 --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2 -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2 --rss-ip
31/03/2020 15:46:50              dut.10.240.183.61: EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/virtio_222123_20200331153848/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=163456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 1)
Port 0: 00:01:02:03:04:05
Checking link statuses...
Done
31/03/2020 15:46:50              dut.10.240.183.61: set fwd mac
31/03/2020 15:46:50              dut.10.240.183.61: set fwd mac
Set mac packet forwarding mode
31/03/2020 15:46:50              dut.10.240.183.61: start
31/03/2020 15:46:50              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:46:50 TestPVPVirtioUserMultiQueuesPortRestart: Running test test_perf_pvp_2queues_test_with_split_ring_inorder_mergeable_path, and 64 frame size.
31/03/2020 15:46:50                         tester: ls -d /tmp
31/03/2020 15:46:50                         tester: /tmp
31/03/2020 15:46:50                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:46:51                         pktgen: test port 0 map gen port 0
31/03/2020 15:46:51                         pktgen: test port 0 map gen port 0
31/03/2020 15:46:51                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:46:51                         pktgen: trex port <0> not support flow control
31/03/2020 15:46:51                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:46:51                         pktgen: begin traffic ......
31/03/2020 15:46:51                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:46:56                         pktgen: traffic completed. 
31/03/2020 15:46:56                         pktgen: begin traffic ......
31/03/2020 15:46:56                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:47:06                         pktgen: begin get port statistic ...
31/03/2020 15:47:06                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:47:06                         pktgen: {0: {'ibytes': 8641960128,
     'ierrors': 0,
     'ipackets': 135030674,
     'obytes': 27314267328,
     'oerrors': 0,
     'opackets': 426785460,
     'rx_bps': 6900058624.0,
     'rx_bps_L1': 9056325824.0,
     'rx_pps': 13476670.0,
     'rx_util': 22.64081456,
     'tx_bps': 21828347904.0,
     'tx_bps_L1': 28649705984.0,
     'tx_pps': 42633488.0,
     'tx_util': 71.62426495999999},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.093605995178223,
            'cpu_util': 98.38256072998047,
            'queue_full': 12370761,
            'rx_bps': 6900058624.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14928288768.0,
            'rx_pps': 13476670.0,
            'tx_bps': 21828347904.0,
            'tx_pps': 42633488.0},
 'latency': {},
 'total': {'ibytes': 8641960128,
           'ierrors': 0,
           'ipackets': 135030674,
           'obytes': 27314267328,
           'oerrors': 0,
           'opackets': 426785460,
           'rx_bps': 6900058624.0,
           'rx_bps_L1': 9056325824.0,
           'rx_pps': 13476670.0,
           'rx_util': 22.64081456,
           'tx_bps': 21828347904.0,
           'tx_bps_L1': 28649705984.0,
           'tx_pps': 42633488.0,
           'tx_util': 71.62426495999999}}
31/03/2020 15:47:06                         pktgen: {'ibytes': 8641960128,
 'ierrors': 0,
 'ipackets': 135030674,
 'obytes': 27314267328,
 'oerrors': 0,
 'opackets': 426785460,
 'rx_bps': 6900058624.0,
 'rx_bps_L1': 9056325824.0,
 'rx_pps': 13476670.0,
 'rx_util': 22.64081456,
 'tx_bps': 21828347904.0,
 'tx_bps_L1': 28649705984.0,
 'tx_pps': 42633488.0,
 'tx_util': 71.62426495999999}
31/03/2020 15:47:06                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21828347904.000000, tx_pps: 42633488.000000 
31/03/2020 15:47:06                         pktgen: {'ibytes': 8641960128,
 'ierrors': 0,
 'ipackets': 135030674,
 'obytes': 27314267328,
 'oerrors': 0,
 'opackets': 426785460,
 'rx_bps': 6900058624.0,
 'rx_bps_L1': 9056325824.0,
 'rx_pps': 13476670.0,
 'rx_util': 22.64081456,
 'tx_bps': 21828347904.0,
 'tx_bps_L1': 28649705984.0,
 'tx_pps': 42633488.0,
 'tx_util': 71.62426495999999}
31/03/2020 15:47:06                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6900058624.000000, rx_pps: 13476670.000000
31/03/2020 15:47:06                         pktgen: throughput: pps_rx 13476670.000000, bps_rx 6900058624.000000
31/03/2020 15:47:06                         pktgen: traffic completed. 
31/03/2020 15:47:06              dut.10.240.183.61: stop
31/03/2020 15:47:06              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 102299600      TX-packets: 102299600      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 100486839      TX-packets: 100486839      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 202786439      RX-dropped: 0             RX-total: 202786439
  TX-packets: 202786439      TX-dropped: 0             TX-total: 202786439
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 202786439      RX-dropped: 0             RX-total: 202786439
  TX-packets: 202786439      TX-dropped: 0             TX-total: 202786439
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:47:06              dut.10.240.183.61: start
31/03/2020 15:47:07              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:47:09                         tester: ls -d /tmp
31/03/2020 15:47:09                         tester: /tmp
31/03/2020 15:47:09                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:47:11                         pktgen: test port 0 map gen port 0
31/03/2020 15:47:11                         pktgen: test port 0 map gen port 0
31/03/2020 15:47:11                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:47:11                         pktgen: trex port <0> not support flow control
31/03/2020 15:47:11                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:47:11                         pktgen: begin traffic ......
31/03/2020 15:47:11                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:47:16                         pktgen: traffic completed. 
31/03/2020 15:47:16                         pktgen: begin traffic ......
31/03/2020 15:47:16                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:47:26                         pktgen: begin get port statistic ...
31/03/2020 15:47:26                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:47:26                         pktgen: {0: {'ibytes': 8685471808,
     'ierrors': 0,
     'ipackets': 135710499,
     'obytes': 27304372800,
     'oerrors': 0,
     'opackets': 426630876,
     'rx_bps': 6940920832.0,
     'rx_bps_L1': 9109957952.0,
     'rx_pps': 13556482.0,
     'rx_util': 22.774894879999998,
     'tx_bps': 21831391232.0,
     'tx_bps_L1': 28653700351.999996,
     'tx_pps': 42639432.0,
     'tx_util': 71.63425088},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.084308624267578,
            'cpu_util': 98.47881317138672,
            'queue_full': 12411658,
            'rx_bps': 6940920832.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14890469376.0,
            'rx_pps': 13556482.0,
            'tx_bps': 21831391232.0,
            'tx_pps': 42639432.0},
 'latency': {},
 'total': {'ibytes': 8685471808,
           'ierrors': 0,
           'ipackets': 135710499,
           'obytes': 27304372800,
           'oerrors': 0,
           'opackets': 426630876,
           'rx_bps': 6940920832.0,
           'rx_bps_L1': 9109957952.0,
           'rx_pps': 13556482.0,
           'rx_util': 22.774894879999998,
           'tx_bps': 21831391232.0,
           'tx_bps_L1': 28653700351.999996,
           'tx_pps': 42639432.0,
           'tx_util': 71.63425088}}
31/03/2020 15:47:26                         pktgen: {'ibytes': 8685471808,
 'ierrors': 0,
 'ipackets': 135710499,
 'obytes': 27304372800,
 'oerrors': 0,
 'opackets': 426630876,
 'rx_bps': 6940920832.0,
 'rx_bps_L1': 9109957952.0,
 'rx_pps': 13556482.0,
 'rx_util': 22.774894879999998,
 'tx_bps': 21831391232.0,
 'tx_bps_L1': 28653700351.999996,
 'tx_pps': 42639432.0,
 'tx_util': 71.63425088}
31/03/2020 15:47:26                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21831391232.000000, tx_pps: 42639432.000000 
31/03/2020 15:47:26                         pktgen: {'ibytes': 8685471808,
 'ierrors': 0,
 'ipackets': 135710499,
 'obytes': 27304372800,
 'oerrors': 0,
 'opackets': 426630876,
 'rx_bps': 6940920832.0,
 'rx_bps_L1': 9109957952.0,
 'rx_pps': 13556482.0,
 'rx_util': 22.774894879999998,
 'tx_bps': 21831391232.0,
 'tx_bps_L1': 28653700351.999996,
 'tx_pps': 42639432.0,
 'tx_util': 71.63425088}
31/03/2020 15:47:26                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6940920832.000000, rx_pps: 13556482.000000
31/03/2020 15:47:26                         pktgen: throughput: pps_rx 13556482.000000, bps_rx 6940920832.000000
31/03/2020 15:47:26                         pktgen: traffic completed. 
31/03/2020 15:47:26              dut.10.240.183.61: stop
31/03/2020 15:47:26              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 102363720      TX-packets: 102363720      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 101294231      TX-packets: 101294231      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 203657951      RX-dropped: 0             RX-total: 203657951
  TX-packets: 203657951      TX-dropped: 0             TX-total: 203657951
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 203657951      RX-dropped: 0             RX-total: 203657951
  TX-packets: 203657951      TX-dropped: 0             TX-total: 203657951
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:47:26              dut.10.240.183.61: start
31/03/2020 15:47:26              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:47:28              dut.10.240.183.61: quit
31/03/2020 15:47:29              dut.10.240.183.61: quit
Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.

Stopping port 0...
Stopping ports...
Done

Shutting down port 0...
Closing ports...
31/03/2020 15:47:29 TestPVPVirtioUserMultiQueuesPortRestart: 
+--------------+------------------------------+------------------+------------+----------------+
| FrameSize(B) |             Mode             | Throughput(Mpps) | % linerate |     Cycle      |
+==============+==============================+==================+============+================+
| 64           | split_ring_inorder_mergeable | 13.477           | 22.641     | Before Restart |
+--------------+------------------------------+------------------+------------+----------------+
| 64           | split_ring_inorder_mergeable | 13.556           | 22.775     | After Restart  |
+--------------+------------------------------+------------------+------------+----------------+
31/03/2020 15:47:29 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_inorder_mergeable_path Result PASSED:
31/03/2020 15:47:29              dut.10.240.183.61: kill_all: called by dut and prefix list has value.
31/03/2020 15:47:31 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_inorder_nonmergeable_path Begin
31/03/2020 15:47:32              dut.10.240.183.61:  
31/03/2020 15:47:32                         tester: 
31/03/2020 15:47:32              dut.10.240.183.61: rm -rf ./vhost.out
31/03/2020 15:47:32              dut.10.240.183.61: 
31/03/2020 15:47:32              dut.10.240.183.61: killall -s INT testpmd
31/03/2020 15:47:32              dut.10.240.183.61: testpmd: no process found
31/03/2020 15:47:32              dut.10.240.183.61: rm -rf ./vhost-net*
31/03/2020 15:47:32              dut.10.240.183.61: 
31/03/2020 15:47:33              dut.10.240.183.61: x86_64-native-linuxapp-gcc/app/testpmd -l 23,24,25 -n 4   --file-prefix=virtio_222123_20200331153848 --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,mrg_rxbuf=0 -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2 --rss-ip
31/03/2020 15:47:33              dut.10.240.183.61: EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/virtio_222123_20200331153848/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=163456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 1)
Port 0: 00:01:02:03:04:05
Checking link statuses...
Done
31/03/2020 15:47:33              dut.10.240.183.61: set fwd mac
31/03/2020 15:47:33              dut.10.240.183.61: set fwd mac
Set mac packet forwarding mode
31/03/2020 15:47:33              dut.10.240.183.61: start
31/03/2020 15:47:34              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:47:34 TestPVPVirtioUserMultiQueuesPortRestart: Running test test_perf_pvp_2queues_test_with_split_ring_inorder_nonmergeable_path, and 64 frame size.
31/03/2020 15:47:34                         tester: ls -d /tmp
31/03/2020 15:47:34                         tester: /tmp
31/03/2020 15:47:34                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:47:35                         pktgen: test port 0 map gen port 0
31/03/2020 15:47:35                         pktgen: test port 0 map gen port 0
31/03/2020 15:47:35                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:47:35                         pktgen: trex port <0> not support flow control
31/03/2020 15:47:35                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:47:35                         pktgen: begin traffic ......
31/03/2020 15:47:35                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:47:40                         pktgen: traffic completed. 
31/03/2020 15:47:40                         pktgen: begin traffic ......
31/03/2020 15:47:40                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:47:50                         pktgen: begin get port statistic ...
31/03/2020 15:47:50                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:47:50                         pktgen: {0: {'ibytes': 8627098624,
     'ierrors': 0,
     'ipackets': 134798416,
     'obytes': 27326395648,
     'oerrors': 0,
     'opackets': 426974988,
     'rx_bps': 6893798912.0,
     'rx_bps_L1': 9048110592.0,
     'rx_pps': 13464448.0,
     'rx_util': 22.62027648,
     'tx_bps': 21846743040.0,
     'tx_bps_L1': 28673850240.0,
     'tx_pps': 42669420.0,
     'tx_util': 71.68462559999999},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.146927833557129,
            'cpu_util': 97.99446105957031,
            'queue_full': 12393421,
            'rx_bps': 6893798912.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14952943616.0,
            'rx_pps': 13464448.0,
            'tx_bps': 21846743040.0,
            'tx_pps': 42669420.0},
 'latency': {},
 'total': {'ibytes': 8627098624,
           'ierrors': 0,
           'ipackets': 134798416,
           'obytes': 27326395648,
           'oerrors': 0,
           'opackets': 426974988,
           'rx_bps': 6893798912.0,
           'rx_bps_L1': 9048110592.0,
           'rx_pps': 13464448.0,
           'rx_util': 22.62027648,
           'tx_bps': 21846743040.0,
           'tx_bps_L1': 28673850240.0,
           'tx_pps': 42669420.0,
           'tx_util': 71.68462559999999}}
31/03/2020 15:47:50                         pktgen: {'ibytes': 8627098624,
 'ierrors': 0,
 'ipackets': 134798416,
 'obytes': 27326395648,
 'oerrors': 0,
 'opackets': 426974988,
 'rx_bps': 6893798912.0,
 'rx_bps_L1': 9048110592.0,
 'rx_pps': 13464448.0,
 'rx_util': 22.62027648,
 'tx_bps': 21846743040.0,
 'tx_bps_L1': 28673850240.0,
 'tx_pps': 42669420.0,
 'tx_util': 71.68462559999999}
31/03/2020 15:47:50                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21846743040.000000, tx_pps: 42669420.000000 
31/03/2020 15:47:50                         pktgen: {'ibytes': 8627098624,
 'ierrors': 0,
 'ipackets': 134798416,
 'obytes': 27326395648,
 'oerrors': 0,
 'opackets': 426974988,
 'rx_bps': 6893798912.0,
 'rx_bps_L1': 9048110592.0,
 'rx_pps': 13464448.0,
 'rx_util': 22.62027648,
 'tx_bps': 21846743040.0,
 'tx_bps_L1': 28673850240.0,
 'tx_pps': 42669420.0,
 'tx_util': 71.68462559999999}
31/03/2020 15:47:50                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6893798912.000000, rx_pps: 13464448.000000
31/03/2020 15:47:50                         pktgen: throughput: pps_rx 13464448.000000, bps_rx 6893798912.000000
31/03/2020 15:47:50                         pktgen: traffic completed. 
31/03/2020 15:47:50              dut.10.240.183.61: stop
31/03/2020 15:47:50              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 101146264      TX-packets: 101146264      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 101238807      TX-packets: 101238807      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 202385071      RX-dropped: 0             RX-total: 202385071
  TX-packets: 202385071      TX-dropped: 0             TX-total: 202385071
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 202385071      RX-dropped: 0             RX-total: 202385071
  TX-packets: 202385071      TX-dropped: 0             TX-total: 202385071
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:47:50              dut.10.240.183.61: start
31/03/2020 15:47:50              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:47:53                         tester: ls -d /tmp
31/03/2020 15:47:53                         tester: /tmp
31/03/2020 15:47:53                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:47:55                         pktgen: test port 0 map gen port 0
31/03/2020 15:47:55                         pktgen: test port 0 map gen port 0
31/03/2020 15:47:55                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:47:55                         pktgen: trex port <0> not support flow control
31/03/2020 15:47:55                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:47:55                         pktgen: begin traffic ......
31/03/2020 15:47:55                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:48:00                         pktgen: traffic completed. 
31/03/2020 15:48:00                         pktgen: begin traffic ......
31/03/2020 15:48:00                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:48:10                         pktgen: begin get port statistic ...
31/03/2020 15:48:10                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:48:10                         pktgen: {0: {'ibytes': 8597999360,
     'ierrors': 0,
     'ipackets': 134343784,
     'obytes': 27315563776,
     'oerrors': 0,
     'opackets': 426805734,
     'rx_bps': 6872324096.0,
     'rx_bps_L1': 9019927616.0,
     'rx_pps': 13422522.0,
     'rx_util': 22.54981904,
     'tx_bps': 21852985344.0,
     'tx_bps_L1': 28682044544.0,
     'tx_pps': 42681620.0,
     'tx_util': 71.70511135999999},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.073654174804688,
            'cpu_util': 98.67106628417969,
            'queue_full': 12368423,
            'rx_bps': 6872324096.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14980662272.0,
            'rx_pps': 13422522.0,
            'tx_bps': 21852985344.0,
            'tx_pps': 42681620.0},
 'latency': {},
 'total': {'ibytes': 8597999360,
           'ierrors': 0,
           'ipackets': 134343784,
           'obytes': 27315563776,
           'oerrors': 0,
           'opackets': 426805734,
           'rx_bps': 6872324096.0,
           'rx_bps_L1': 9019927616.0,
           'rx_pps': 13422522.0,
           'rx_util': 22.54981904,
           'tx_bps': 21852985344.0,
           'tx_bps_L1': 28682044544.0,
           'tx_pps': 42681620.0,
           'tx_util': 71.70511135999999}}
31/03/2020 15:48:10                         pktgen: {'ibytes': 8597999360,
 'ierrors': 0,
 'ipackets': 134343784,
 'obytes': 27315563776,
 'oerrors': 0,
 'opackets': 426805734,
 'rx_bps': 6872324096.0,
 'rx_bps_L1': 9019927616.0,
 'rx_pps': 13422522.0,
 'rx_util': 22.54981904,
 'tx_bps': 21852985344.0,
 'tx_bps_L1': 28682044544.0,
 'tx_pps': 42681620.0,
 'tx_util': 71.70511135999999}
31/03/2020 15:48:10                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21852985344.000000, tx_pps: 42681620.000000 
31/03/2020 15:48:10                         pktgen: {'ibytes': 8597999360,
 'ierrors': 0,
 'ipackets': 134343784,
 'obytes': 27315563776,
 'oerrors': 0,
 'opackets': 426805734,
 'rx_bps': 6872324096.0,
 'rx_bps_L1': 9019927616.0,
 'rx_pps': 13422522.0,
 'rx_util': 22.54981904,
 'tx_bps': 21852985344.0,
 'tx_bps_L1': 28682044544.0,
 'tx_pps': 42681620.0,
 'tx_util': 71.70511135999999}
31/03/2020 15:48:10                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6872324096.000000, rx_pps: 13422522.000000
31/03/2020 15:48:10                         pktgen: throughput: pps_rx 13422522.000000, bps_rx 6872324096.000000
31/03/2020 15:48:10                         pktgen: traffic completed. 
31/03/2020 15:48:10              dut.10.240.183.61: stop
31/03/2020 15:48:10              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 100728311      TX-packets: 100728311      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 101013673      TX-packets: 101013673      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 201741984      RX-dropped: 0             RX-total: 201741984
  TX-packets: 201741984      TX-dropped: 0             TX-total: 201741984
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 201741984      RX-dropped: 0             RX-total: 201741984
  TX-packets: 201741984      TX-dropped: 0             TX-total: 201741984
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:48:10              dut.10.240.183.61: start
31/03/2020 15:48:10              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:48:11              dut.10.240.183.61: quit
31/03/2020 15:48:12              dut.10.240.183.61: quit
Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.

Stopping port 0...
Stopping ports...
Done

Shutting down port 0...
Closing ports...
31/03/2020 15:48:12 TestPVPVirtioUserMultiQueuesPortRestart: 
+--------------+---------------------------------+------------------+------------+----------------+
| FrameSize(B) |              Mode               | Throughput(Mpps) | % linerate |     Cycle      |
+==============+=================================+==================+============+================+
| 64           | split_ring_inorder_nonmergeable | 13.464           | 22.620     | Before Restart |
+--------------+---------------------------------+------------------+------------+----------------+
| 64           | split_ring_inorder_nonmergeable | 13.423           | 22.550     | After Restart  |
+--------------+---------------------------------+------------------+------------+----------------+
31/03/2020 15:48:12 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_inorder_nonmergeable_path Result PASSED:
31/03/2020 15:48:12              dut.10.240.183.61: kill_all: called by dut and prefix list has value.
31/03/2020 15:48:15 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_mergeable_path Begin
31/03/2020 15:48:15              dut.10.240.183.61:  
31/03/2020 15:48:15                         tester: 
31/03/2020 15:48:15              dut.10.240.183.61: rm -rf ./vhost.out
31/03/2020 15:48:15              dut.10.240.183.61: 
31/03/2020 15:48:15              dut.10.240.183.61: killall -s INT testpmd
31/03/2020 15:48:16              dut.10.240.183.61: testpmd: no process found
31/03/2020 15:48:16              dut.10.240.183.61: rm -rf ./vhost-net*
31/03/2020 15:48:16              dut.10.240.183.61: 
31/03/2020 15:48:16              dut.10.240.183.61: x86_64-native-linuxapp-gcc/app/testpmd -l 23,24,25 -n 4   --file-prefix=virtio_222123_20200331153848 --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,in_order=0 -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2 --rss-ip
31/03/2020 15:48:17              dut.10.240.183.61: EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/virtio_222123_20200331153848/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=163456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 1)
Port 0: 00:01:02:03:04:05
Checking link statuses...
Done
31/03/2020 15:48:17              dut.10.240.183.61: set fwd mac
31/03/2020 15:48:17              dut.10.240.183.61: set fwd mac
Set mac packet forwarding mode
31/03/2020 15:48:17              dut.10.240.183.61: start
31/03/2020 15:48:17              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:48:17 TestPVPVirtioUserMultiQueuesPortRestart: Running test test_perf_pvp_2queues_test_with_split_ring_mergeable_path, and 64 frame size.
31/03/2020 15:48:17                         tester: ls -d /tmp
31/03/2020 15:48:17                         tester: /tmp
31/03/2020 15:48:17                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:48:19                         pktgen: test port 0 map gen port 0
31/03/2020 15:48:19                         pktgen: test port 0 map gen port 0
31/03/2020 15:48:19                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:48:19                         pktgen: trex port <0> not support flow control
31/03/2020 15:48:19                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:48:19                         pktgen: begin traffic ......
31/03/2020 15:48:19                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:48:24                         pktgen: traffic completed. 
31/03/2020 15:48:24                         pktgen: begin traffic ......
31/03/2020 15:48:24                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:48:34                         pktgen: begin get port statistic ...
31/03/2020 15:48:34                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:48:34                         pktgen: {0: {'ibytes': 8570805504,
     'ierrors': 0,
     'ipackets': 133918866,
     'obytes': 27320517312,
     'oerrors': 0,
     'opackets': 426883127,
     'rx_bps': 6843722240.0,
     'rx_bps_L1': 8982386400.0,
     'rx_pps': 13366651.0,
     'rx_util': 22.455966,
     'tx_bps': 21839046656.0,
     'tx_bps_L1': 28663749375.999996,
     'tx_pps': 42654392.0,
     'tx_util': 71.65937344},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.126381874084473,
            'cpu_util': 98.14083099365234,
            'queue_full': 12380927,
            'rx_bps': 6843722240.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14995323904.0,
            'rx_pps': 13366651.0,
            'tx_bps': 21839046656.0,
            'tx_pps': 42654392.0},
 'latency': {},
 'total': {'ibytes': 8570805504,
           'ierrors': 0,
           'ipackets': 133918866,
           'obytes': 27320517312,
           'oerrors': 0,
           'opackets': 426883127,
           'rx_bps': 6843722240.0,
           'rx_bps_L1': 8982386400.0,
           'rx_pps': 13366651.0,
           'rx_util': 22.455966,
           'tx_bps': 21839046656.0,
           'tx_bps_L1': 28663749375.999996,
           'tx_pps': 42654392.0,
           'tx_util': 71.65937344}}
31/03/2020 15:48:34                         pktgen: {'ibytes': 8570805504,
 'ierrors': 0,
 'ipackets': 133918866,
 'obytes': 27320517312,
 'oerrors': 0,
 'opackets': 426883127,
 'rx_bps': 6843722240.0,
 'rx_bps_L1': 8982386400.0,
 'rx_pps': 13366651.0,
 'rx_util': 22.455966,
 'tx_bps': 21839046656.0,
 'tx_bps_L1': 28663749375.999996,
 'tx_pps': 42654392.0,
 'tx_util': 71.65937344}
31/03/2020 15:48:34                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21839046656.000000, tx_pps: 42654392.000000 
31/03/2020 15:48:34                         pktgen: {'ibytes': 8570805504,
 'ierrors': 0,
 'ipackets': 133918866,
 'obytes': 27320517312,
 'oerrors': 0,
 'opackets': 426883127,
 'rx_bps': 6843722240.0,
 'rx_bps_L1': 8982386400.0,
 'rx_pps': 13366651.0,
 'rx_util': 22.455966,
 'tx_bps': 21839046656.0,
 'tx_bps_L1': 28663749375.999996,
 'tx_pps': 42654392.0,
 'tx_util': 71.65937344}
31/03/2020 15:48:34                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6843722240.000000, rx_pps: 13366651.000000
31/03/2020 15:48:34                         pktgen: throughput: pps_rx 13366651.000000, bps_rx 6843722240.000000
31/03/2020 15:48:34                         pktgen: traffic completed. 
31/03/2020 15:48:34              dut.10.240.183.61: stop
31/03/2020 15:48:34              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 100577998      TX-packets: 100577998      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 100264340      TX-packets: 100264340      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 200842338      RX-dropped: 0             RX-total: 200842338
  TX-packets: 200842338      TX-dropped: 0             TX-total: 200842338
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 200842338      RX-dropped: 0             RX-total: 200842338
  TX-packets: 200842338      TX-dropped: 0             TX-total: 200842338
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:48:34              dut.10.240.183.61: start
31/03/2020 15:48:34              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:48:37                         tester: ls -d /tmp
31/03/2020 15:48:37                         tester: /tmp
31/03/2020 15:48:37                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:48:38                         pktgen: test port 0 map gen port 0
31/03/2020 15:48:38                         pktgen: test port 0 map gen port 0
31/03/2020 15:48:38                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:48:38                         pktgen: trex port <0> not support flow control
31/03/2020 15:48:38                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:48:39                         pktgen: begin traffic ......
31/03/2020 15:48:39                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:48:44                         pktgen: traffic completed. 
31/03/2020 15:48:44                         pktgen: begin traffic ......
31/03/2020 15:48:44                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:48:54                         pktgen: begin get port statistic ...
31/03/2020 15:48:54                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:48:54                         pktgen: {0: {'ibytes': 8633374912,
     'ierrors': 0,
     'ipackets': 134896496,
     'obytes': 27318839744,
     'oerrors': 0,
     'opackets': 426856926,
     'rx_bps': 6891996672.0,
     'rx_bps_L1': 9045745952.0,
     'rx_pps': 13460933.0,
     'rx_util': 22.61436488,
     'tx_bps': 21833076736.0,
     'tx_bps_L1': 28656045056.000004,
     'tx_pps': 42643552.0,
     'tx_util': 71.64011264000001},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.057165145874023,
            'cpu_util': 98.72818756103516,
            'queue_full': 12381981,
            'rx_bps': 6891996672.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14941080576.0,
            'rx_pps': 13460933.0,
            'tx_bps': 21833076736.0,
            'tx_pps': 42643552.0},
 'latency': {},
 'total': {'ibytes': 8633374912,
           'ierrors': 0,
           'ipackets': 134896496,
           'obytes': 27318839744,
           'oerrors': 0,
           'opackets': 426856926,
           'rx_bps': 6891996672.0,
           'rx_bps_L1': 9045745952.0,
           'rx_pps': 13460933.0,
           'rx_util': 22.61436488,
           'tx_bps': 21833076736.0,
           'tx_bps_L1': 28656045056.000004,
           'tx_pps': 42643552.0,
           'tx_util': 71.64011264000001}}
31/03/2020 15:48:54                         pktgen: {'ibytes': 8633374912,
 'ierrors': 0,
 'ipackets': 134896496,
 'obytes': 27318839744,
 'oerrors': 0,
 'opackets': 426856926,
 'rx_bps': 6891996672.0,
 'rx_bps_L1': 9045745952.0,
 'rx_pps': 13460933.0,
 'rx_util': 22.61436488,
 'tx_bps': 21833076736.0,
 'tx_bps_L1': 28656045056.000004,
 'tx_pps': 42643552.0,
 'tx_util': 71.64011264000001}
31/03/2020 15:48:54                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21833076736.000000, tx_pps: 42643552.000000 
31/03/2020 15:48:54                         pktgen: {'ibytes': 8633374912,
 'ierrors': 0,
 'ipackets': 134896496,
 'obytes': 27318839744,
 'oerrors': 0,
 'opackets': 426856926,
 'rx_bps': 6891996672.0,
 'rx_bps_L1': 9045745952.0,
 'rx_pps': 13460933.0,
 'rx_util': 22.61436488,
 'tx_bps': 21833076736.0,
 'tx_bps_L1': 28656045056.000004,
 'tx_pps': 42643552.0,
 'tx_util': 71.64011264000001}
31/03/2020 15:48:54                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6891996672.000000, rx_pps: 13460933.000000
31/03/2020 15:48:54                         pktgen: throughput: pps_rx 13460933.000000, bps_rx 6891996672.000000
31/03/2020 15:48:54                         pktgen: traffic completed. 
31/03/2020 15:48:54              dut.10.240.183.61: stop
31/03/2020 15:48:54              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 101228814      TX-packets: 101228814      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 101089618      TX-packets: 101089618      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 202318432      RX-dropped: 0             RX-total: 202318432
  TX-packets: 202318432      TX-dropped: 0             TX-total: 202318432
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 202318432      RX-dropped: 0             RX-total: 202318432
  TX-packets: 202318432      TX-dropped: 0             TX-total: 202318432
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:48:54              dut.10.240.183.61: start
31/03/2020 15:48:54              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:48:55              dut.10.240.183.61: quit
31/03/2020 15:48:56              dut.10.240.183.61: quit
Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.

Stopping port 0...
Stopping ports...
Done

Shutting down port 0...
Closing ports...
31/03/2020 15:48:56 TestPVPVirtioUserMultiQueuesPortRestart: 
+--------------+----------------------+------------------+------------+----------------+
| FrameSize(B) |         Mode         | Throughput(Mpps) | % linerate |     Cycle      |
+==============+======================+==================+============+================+
| 64           | split_ring_mergeable | 13.367           | 22.456     | Before Restart |
+--------------+----------------------+------------------+------------+----------------+
| 64           | split_ring_mergeable | 13.461           | 22.614     | After Restart  |
+--------------+----------------------+------------------+------------+----------------+
31/03/2020 15:48:56 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_mergeable_path Result PASSED:
31/03/2020 15:48:56              dut.10.240.183.61: kill_all: called by dut and prefix list has value.
31/03/2020 15:48:59 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_nonmergeable_path Begin
31/03/2020 15:48:59              dut.10.240.183.61:  
31/03/2020 15:48:59                         tester: 
31/03/2020 15:48:59              dut.10.240.183.61: rm -rf ./vhost.out
31/03/2020 15:48:59              dut.10.240.183.61: 
31/03/2020 15:48:59              dut.10.240.183.61: killall -s INT testpmd
31/03/2020 15:48:59              dut.10.240.183.61: testpmd: no process found
31/03/2020 15:48:59              dut.10.240.183.61: rm -rf ./vhost-net*
31/03/2020 15:48:59              dut.10.240.183.61: 
31/03/2020 15:49:00              dut.10.240.183.61: x86_64-native-linuxapp-gcc/app/testpmd -l 23,24,25 -n 4   --file-prefix=virtio_222123_20200331153848 --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,mrg_rxbuf=0,in_order=0 -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2 --rss-ip
31/03/2020 15:49:02              dut.10.240.183.61: EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/virtio_222123_20200331153848/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=163456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 1)
Port 0: 00:01:02:03:04:05
Checking link statuses...
Done
31/03/2020 15:49:02              dut.10.240.183.61: set fwd mac
31/03/2020 15:49:02              dut.10.240.183.61: set fwd mac
Set mac packet forwarding mode
31/03/2020 15:49:02              dut.10.240.183.61: start
31/03/2020 15:49:02              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:49:02 TestPVPVirtioUserMultiQueuesPortRestart: Running test test_perf_pvp_2queues_test_with_split_ring_nonmergeable_path, and 64 frame size.
31/03/2020 15:49:02                         tester: ls -d /tmp
31/03/2020 15:49:02                         tester: /tmp
31/03/2020 15:49:02                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:49:03                         pktgen: test port 0 map gen port 0
31/03/2020 15:49:03                         pktgen: test port 0 map gen port 0
31/03/2020 15:49:03                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:49:03                         pktgen: trex port <0> not support flow control
31/03/2020 15:49:03                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:49:03                         pktgen: begin traffic ......
31/03/2020 15:49:03                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:49:08                         pktgen: traffic completed. 
31/03/2020 15:49:08                         pktgen: begin traffic ......
31/03/2020 15:49:08                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:49:18                         pktgen: begin get port statistic ...
31/03/2020 15:49:18                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:49:18                         pktgen: {0: {'ibytes': 8561961088,
     'ierrors': 0,
     'ipackets': 133780674,
     'obytes': 27305100736,
     'oerrors': 0,
     'opackets': 426642255,
     'rx_bps': 6842356736.0,
     'rx_bps_L1': 8980592096.0,
     'rx_pps': 13363971.0,
     'rx_util': 22.45148024,
     'tx_bps': 21834559488.0,
     'tx_bps_L1': 28657859328.0,
     'tx_pps': 42645624.0,
     'tx_util': 71.64464832},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.135926246643066,
            'cpu_util': 98.03656768798828,
            'queue_full': 12392898,
            'rx_bps': 6842356736.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14992200704.0,
            'rx_pps': 13363971.0,
            'tx_bps': 21834559488.0,
            'tx_pps': 42645624.0},
 'latency': {},
 'total': {'ibytes': 8561961088,
           'ierrors': 0,
           'ipackets': 133780674,
           'obytes': 27305100736,
           'oerrors': 0,
           'opackets': 426642255,
           'rx_bps': 6842356736.0,
           'rx_bps_L1': 8980592096.0,
           'rx_pps': 13363971.0,
           'rx_util': 22.45148024,
           'tx_bps': 21834559488.0,
           'tx_bps_L1': 28657859328.0,
           'tx_pps': 42645624.0,
           'tx_util': 71.64464832}}
31/03/2020 15:49:18                         pktgen: {'ibytes': 8561961088,
 'ierrors': 0,
 'ipackets': 133780674,
 'obytes': 27305100736,
 'oerrors': 0,
 'opackets': 426642255,
 'rx_bps': 6842356736.0,
 'rx_bps_L1': 8980592096.0,
 'rx_pps': 13363971.0,
 'rx_util': 22.45148024,
 'tx_bps': 21834559488.0,
 'tx_bps_L1': 28657859328.0,
 'tx_pps': 42645624.0,
 'tx_util': 71.64464832}
31/03/2020 15:49:18                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21834559488.000000, tx_pps: 42645624.000000 
31/03/2020 15:49:18                         pktgen: {'ibytes': 8561961088,
 'ierrors': 0,
 'ipackets': 133780674,
 'obytes': 27305100736,
 'oerrors': 0,
 'opackets': 426642255,
 'rx_bps': 6842356736.0,
 'rx_bps_L1': 8980592096.0,
 'rx_pps': 13363971.0,
 'rx_util': 22.45148024,
 'tx_bps': 21834559488.0,
 'tx_bps_L1': 28657859328.0,
 'tx_pps': 42645624.0,
 'tx_util': 71.64464832}
31/03/2020 15:49:18                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6842356736.000000, rx_pps: 13363971.000000
31/03/2020 15:49:18                         pktgen: throughput: pps_rx 13363971.000000, bps_rx 6842356736.000000
31/03/2020 15:49:18                         pktgen: traffic completed. 
31/03/2020 15:49:18              dut.10.240.183.61: stop
31/03/2020 15:49:18              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 100581621      TX-packets: 100581621      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 100130519      TX-packets: 100130519      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 200712140      RX-dropped: 0             RX-total: 200712140
  TX-packets: 200712140      TX-dropped: 0             TX-total: 200712140
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 200712140      RX-dropped: 0             RX-total: 200712140
  TX-packets: 200712140      TX-dropped: 0             TX-total: 200712140
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:49:18              dut.10.240.183.61: start
31/03/2020 15:49:19              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:49:21                         tester: ls -d /tmp
31/03/2020 15:49:21                         tester: /tmp
31/03/2020 15:49:21                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:49:23                         pktgen: test port 0 map gen port 0
31/03/2020 15:49:23                         pktgen: test port 0 map gen port 0
31/03/2020 15:49:23                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:49:23                         pktgen: trex port <0> not support flow control
31/03/2020 15:49:23                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:49:23                         pktgen: begin traffic ......
31/03/2020 15:49:23                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:49:28                         pktgen: traffic completed. 
31/03/2020 15:49:28                         pktgen: begin traffic ......
31/03/2020 15:49:28                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:49:38                         pktgen: begin get port statistic ...
31/03/2020 15:49:38                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:49:38                         pktgen: {0: {'ibytes': 8583549248,
     'ierrors': 0,
     'ipackets': 134117994,
     'obytes': 27327387200,
     'oerrors': 0,
     'opackets': 426990476,
     'rx_bps': 6855127552.0,
     'rx_bps_L1': 8997355392.0,
     'rx_pps': 13388924.0,
     'rx_util': 22.49338848,
     'tx_bps': 21838714880.0,
     'tx_bps_L1': 28663312639.999996,
     'tx_pps': 42653736.0,
     'tx_util': 71.6582816},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.066710472106934,
            'cpu_util': 98.66850280761719,
            'queue_full': 12361306,
            'rx_bps': 6855127552.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14983587840.0,
            'rx_pps': 13388924.0,
            'tx_bps': 21838714880.0,
            'tx_pps': 42653736.0},
 'latency': {},
 'total': {'ibytes': 8583549248,
           'ierrors': 0,
           'ipackets': 134117994,
           'obytes': 27327387200,
           'oerrors': 0,
           'opackets': 426990476,
           'rx_bps': 6855127552.0,
           'rx_bps_L1': 8997355392.0,
           'rx_pps': 13388924.0,
           'rx_util': 22.49338848,
           'tx_bps': 21838714880.0,
           'tx_bps_L1': 28663312639.999996,
           'tx_pps': 42653736.0,
           'tx_util': 71.6582816}}
31/03/2020 15:49:38                         pktgen: {'ibytes': 8583549248,
 'ierrors': 0,
 'ipackets': 134117994,
 'obytes': 27327387200,
 'oerrors': 0,
 'opackets': 426990476,
 'rx_bps': 6855127552.0,
 'rx_bps_L1': 8997355392.0,
 'rx_pps': 13388924.0,
 'rx_util': 22.49338848,
 'tx_bps': 21838714880.0,
 'tx_bps_L1': 28663312639.999996,
 'tx_pps': 42653736.0,
 'tx_util': 71.6582816}
31/03/2020 15:49:38                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21838714880.000000, tx_pps: 42653736.000000 
31/03/2020 15:49:38                         pktgen: {'ibytes': 8583549248,
 'ierrors': 0,
 'ipackets': 134117994,
 'obytes': 27327387200,
 'oerrors': 0,
 'opackets': 426990476,
 'rx_bps': 6855127552.0,
 'rx_bps_L1': 8997355392.0,
 'rx_pps': 13388924.0,
 'rx_util': 22.49338848,
 'tx_bps': 21838714880.0,
 'tx_bps_L1': 28663312639.999996,
 'tx_pps': 42653736.0,
 'tx_util': 71.6582816}
31/03/2020 15:49:38                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6855127552.000000, rx_pps: 13388924.000000
31/03/2020 15:49:38                         pktgen: throughput: pps_rx 13388924.000000, bps_rx 6855127552.000000
31/03/2020 15:49:38                         pktgen: traffic completed. 
31/03/2020 15:49:38              dut.10.240.183.61: stop
31/03/2020 15:49:38              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 100978391      TX-packets: 100978391      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 100197992      TX-packets: 100197992      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 201176383      RX-dropped: 0             RX-total: 201176383
  TX-packets: 201176383      TX-dropped: 0             TX-total: 201176383
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 201176383      RX-dropped: 0             RX-total: 201176383
  TX-packets: 201176383      TX-dropped: 0             TX-total: 201176383
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:49:38              dut.10.240.183.61: start
31/03/2020 15:49:38              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x1 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x1
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:49:40              dut.10.240.183.61: quit
31/03/2020 15:49:40              dut.10.240.183.61: quit
Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.

Stopping port 0...
Stopping ports...
Done

Shutting down port 0...
Closing ports...
31/03/2020 15:49:41 TestPVPVirtioUserMultiQueuesPortRestart: 
+--------------+-------------------------+------------------+------------+----------------+
| FrameSize(B) |          Mode           | Throughput(Mpps) | % linerate |     Cycle      |
+==============+=========================+==================+============+================+
| 64           | split_ring_nonmergeable | 13.364           | 22.451     | Before Restart |
+--------------+-------------------------+------------------+------------+----------------+
| 64           | split_ring_nonmergeable | 13.389           | 22.493     | After Restart  |
+--------------+-------------------------+------------------+------------+----------------+
31/03/2020 15:49:41 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_nonmergeable_path Result PASSED:
31/03/2020 15:49:41              dut.10.240.183.61: kill_all: called by dut and prefix list has value.
31/03/2020 15:49:43 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_vector_rx_path Begin
31/03/2020 15:49:43              dut.10.240.183.61:  
31/03/2020 15:49:44                         tester: 
31/03/2020 15:49:44              dut.10.240.183.61: rm -rf ./vhost.out
31/03/2020 15:49:44              dut.10.240.183.61: 
31/03/2020 15:49:44              dut.10.240.183.61: killall -s INT testpmd
31/03/2020 15:49:44              dut.10.240.183.61: testpmd: no process found
31/03/2020 15:49:44              dut.10.240.183.61: rm -rf ./vhost-net*
31/03/2020 15:49:44              dut.10.240.183.61: 
31/03/2020 15:49:45              dut.10.240.183.61: x86_64-native-linuxapp-gcc/app/testpmd -l 23,24,25 -n 4   --file-prefix=virtio_222123_20200331153848 --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,mrg_rxbuf=0,in_order=0 -- -i --tx-offloads=0x0 --rss-ip --nb-cores=2 --rxq=2 --txq=2 --rss-ip
31/03/2020 15:49:45              dut.10.240.183.61: EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/virtio_222123_20200331153848/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=163456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 1)
Port 0: 00:01:02:03:04:05
Checking link statuses...
Done
31/03/2020 15:49:45              dut.10.240.183.61: set fwd mac
31/03/2020 15:49:45              dut.10.240.183.61: set fwd mac
Set mac packet forwarding mode
31/03/2020 15:49:45              dut.10.240.183.61: start
31/03/2020 15:49:46              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x0 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x0
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:49:46 TestPVPVirtioUserMultiQueuesPortRestart: Running test test_perf_pvp_2queues_test_with_split_ring_vector_rx_path, and 64 frame size.
31/03/2020 15:49:46                         tester: ls -d /tmp
31/03/2020 15:49:46                         tester: /tmp
31/03/2020 15:49:46                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:49:47                         pktgen: test port 0 map gen port 0
31/03/2020 15:49:47                         pktgen: test port 0 map gen port 0
31/03/2020 15:49:47                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:49:47                         pktgen: trex port <0> not support flow control
31/03/2020 15:49:47                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:49:47                         pktgen: begin traffic ......
31/03/2020 15:49:47                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:49:52                         pktgen: traffic completed. 
31/03/2020 15:49:52                         pktgen: begin traffic ......
31/03/2020 15:49:52                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:50:02                         pktgen: begin get port statistic ...
31/03/2020 15:50:02                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:50:02                         pktgen: {0: {'ibytes': 8617808960,
     'ierrors': 0,
     'ipackets': 134653265,
     'obytes': 27317646720,
     'oerrors': 0,
     'opackets': 426838281,
     'rx_bps': 6882782208.0,
     'rx_bps_L1': 9033652928.0,
     'rx_pps': 13442942.0,
     'rx_util': 22.58413232,
     'tx_bps': 21843070976.0,
     'tx_bps_L1': 28669030656.0,
     'tx_pps': 42662248.0,
     'tx_util': 71.67257664},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.123735427856445,
            'cpu_util': 98.18226623535156,
            'queue_full': 12383347,
            'rx_bps': 6882782208.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14960287744.0,
            'rx_pps': 13442942.0,
            'tx_bps': 21843070976.0,
            'tx_pps': 42662248.0},
 'latency': {},
 'total': {'ibytes': 8617808960,
           'ierrors': 0,
           'ipackets': 134653265,
           'obytes': 27317646720,
           'oerrors': 0,
           'opackets': 426838281,
           'rx_bps': 6882782208.0,
           'rx_bps_L1': 9033652928.0,
           'rx_pps': 13442942.0,
           'rx_util': 22.58413232,
           'tx_bps': 21843070976.0,
           'tx_bps_L1': 28669030656.0,
           'tx_pps': 42662248.0,
           'tx_util': 71.67257664}}
31/03/2020 15:50:02                         pktgen: {'ibytes': 8617808960,
 'ierrors': 0,
 'ipackets': 134653265,
 'obytes': 27317646720,
 'oerrors': 0,
 'opackets': 426838281,
 'rx_bps': 6882782208.0,
 'rx_bps_L1': 9033652928.0,
 'rx_pps': 13442942.0,
 'rx_util': 22.58413232,
 'tx_bps': 21843070976.0,
 'tx_bps_L1': 28669030656.0,
 'tx_pps': 42662248.0,
 'tx_util': 71.67257664}
31/03/2020 15:50:02                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21843070976.000000, tx_pps: 42662248.000000 
31/03/2020 15:50:02                         pktgen: {'ibytes': 8617808960,
 'ierrors': 0,
 'ipackets': 134653265,
 'obytes': 27317646720,
 'oerrors': 0,
 'opackets': 426838281,
 'rx_bps': 6882782208.0,
 'rx_bps_L1': 9033652928.0,
 'rx_pps': 13442942.0,
 'rx_util': 22.58413232,
 'tx_bps': 21843070976.0,
 'tx_bps_L1': 28669030656.0,
 'tx_pps': 42662248.0,
 'tx_util': 71.67257664}
31/03/2020 15:50:02                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6882782208.000000, rx_pps: 13442942.000000
31/03/2020 15:50:02                         pktgen: throughput: pps_rx 13442942.000000, bps_rx 6882782208.000000
31/03/2020 15:50:02                         pktgen: traffic completed. 
31/03/2020 15:50:02              dut.10.240.183.61: stop
31/03/2020 15:50:02              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 101600525      TX-packets: 101600525      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 100740439      TX-packets: 100740439      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 202340964      RX-dropped: 0             RX-total: 202340964
  TX-packets: 202340964      TX-dropped: 0             TX-total: 202340964
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 202340964      RX-dropped: 0             RX-total: 202340964
  TX-packets: 202340964      TX-dropped: 0             TX-total: 202340964
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:50:02              dut.10.240.183.61: start
31/03/2020 15:50:02              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x0 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x0
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:50:05                         tester: ls -d /tmp
31/03/2020 15:50:05                         tester: /tmp
31/03/2020 15:50:05                         tester: scp -v /home/xqm/dts_virtio/output/tmp/pcap/pvp_multipath.pcap root@10.240.183.52:/tmp/pvp_multipath.pcap
31/03/2020 15:50:07                         pktgen: test port 0 map gen port 0
31/03/2020 15:50:07                         pktgen: test port 0 map gen port 0
31/03/2020 15:50:07                         pktgen: {'arp': '-',
 'cores': [0, 1, 2, 3],
 'description': 'Ethernet Controller XL710 for 40GbE QSFP+',
 'dest': '00:00:00:00:01:00',
 'driver': 'net_i40e',
 'fc': 'none',
 'fc_supported': 'no',
 'grat_arp': 'off',
 'hw_mac': '3c:fd:fe:d5:e1:d0',
 'index': 0,
 'ipv6': 'off',
 'is_fc_supported': False,
 'is_led_supported': True,
 'is_link_supported': True,
 'is_prom_supported': True,
 'is_virtual': 'no',
 'is_vxlan_supported': 'yes',
 'layer_mode': 'Ethernet',
 'led_change_supported': 'yes',
 'link': 'UP',
 'link_change_supported': 'yes',
 'mult': 'off',
 'numa': 1,
 'pci_addr': '0000:b1:00.0',
 'prom': 'off',
 'prom_supported': 'yes',
 'rx': {'caps': ['flow_stats', 'latency'], 'counters': 127},
 'rx_filter_mode': 'hardware match',
 'rx_queue': 'off',
 'speed': 40.0,
 'src_ipv4': '-',
 'src_mac': '3c:fd:fe:d5:e1:d0',
 'status': 'IDLE',
 'supp_speeds': [40000],
 'vlan': '-',
 'vxlan_fs': '-'}
31/03/2020 15:50:07                         pktgen: trex port <0> not support flow control
31/03/2020 15:50:07                         pktgen: trex packet generator: run traffic 5s to warm up ... 
31/03/2020 15:50:07                         pktgen: begin traffic ......
31/03/2020 15:50:07                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:50:12                         pktgen: traffic completed. 
31/03/2020 15:50:12                         pktgen: begin traffic ......
31/03/2020 15:50:12                         pktgen: {'ports': [0], 'mult': '100%', 'core_mask': None, 'force': True}
31/03/2020 15:50:22                         pktgen: begin get port statistic ...
31/03/2020 15:50:22                         pktgen: {'options': {'fields_config': {'ip': {'dst': {'action': 'random',
                                              'end': '48.0.0.64',
                                              'start': '48.0.0.1',
                                              'step': 1}}},
             'pcap': '/tmp/pvp_multipath.pcap',
             'stream_config': {'rate': 100,
                               'transmit_mode': 'continuous',
                               'txmode': {}}},
 'pcap_file': '/tmp/pvp_multipath.pcap',
 'rx_port': 0,
 'tx_port': 0}
31/03/2020 15:50:22                         pktgen: {0: {'ibytes': 8606210240,
     'ierrors': 0,
     'ipackets': 134472035,
     'obytes': 27334392768,
     'oerrors': 0,
     'opackets': 427099944,
     'rx_bps': 6886019584.0,
     'rx_bps_L1': 9037901184.0,
     'rx_pps': 13449260.0,
     'rx_util': 22.59475296,
     'tx_bps': 21884631040.0,
     'tx_bps_L1': 28723578240.0,
     'tx_pps': 42743420.0,
     'tx_util': 71.8089456},
 1: {'ibytes': 0,
     'ierrors': 0,
     'ipackets': 0,
     'obytes': 0,
     'oerrors': 0,
     'opackets': 0,
     'rx_bps': 0.0,
     'rx_bps_L1': 0,
     'rx_pps': 0.0,
     'rx_util': 0.0,
     'tx_bps': 0.0,
     'tx_bps_L1': 0,
     'tx_pps': 0.0,
     'tx_util': 0.0},
 'flow_stats': {},
 'global': {'bw_per_core': 11.08084487915039,
            'cpu_util': 98.74983215332031,
            'queue_full': 12390831,
            'rx_bps': 6886019584.0,
            'rx_cpu_util': 0.0,
            'rx_drop_bps': 14998610944.0,
            'rx_pps': 13449260.0,
            'tx_bps': 21884631040.0,
            'tx_pps': 42743420.0},
 'latency': {},
 'total': {'ibytes': 8606210240,
           'ierrors': 0,
           'ipackets': 134472035,
           'obytes': 27334392768,
           'oerrors': 0,
           'opackets': 427099944,
           'rx_bps': 6886019584.0,
           'rx_bps_L1': 9037901184.0,
           'rx_pps': 13449260.0,
           'rx_util': 22.59475296,
           'tx_bps': 21884631040.0,
           'tx_bps_L1': 28723578240.0,
           'tx_pps': 42743420.0,
           'tx_util': 71.8089456}}
31/03/2020 15:50:22                         pktgen: {'ibytes': 8606210240,
 'ierrors': 0,
 'ipackets': 134472035,
 'obytes': 27334392768,
 'oerrors': 0,
 'opackets': 427099944,
 'rx_bps': 6886019584.0,
 'rx_bps_L1': 9037901184.0,
 'rx_pps': 13449260.0,
 'rx_util': 22.59475296,
 'tx_bps': 21884631040.0,
 'tx_bps_L1': 28723578240.0,
 'tx_pps': 42743420.0,
 'tx_util': 71.8089456}
31/03/2020 15:50:22                         pktgen: Tx Port 0 stats: 
tx_port: 0,  tx_bps: 21884631040.000000, tx_pps: 42743420.000000 
31/03/2020 15:50:22                         pktgen: {'ibytes': 8606210240,
 'ierrors': 0,
 'ipackets': 134472035,
 'obytes': 27334392768,
 'oerrors': 0,
 'opackets': 427099944,
 'rx_bps': 6886019584.0,
 'rx_bps_L1': 9037901184.0,
 'rx_pps': 13449260.0,
 'rx_util': 22.59475296,
 'tx_bps': 21884631040.0,
 'tx_bps_L1': 28723578240.0,
 'tx_pps': 42743420.0,
 'tx_util': 71.8089456}
31/03/2020 15:50:22                         pktgen: Rx Port 0 stats: 
rx_port: 0,  rx_bps: 6886019584.000000, rx_pps: 13449260.000000
31/03/2020 15:50:22                         pktgen: throughput: pps_rx 13449260.000000, bps_rx 6886019584.000000
31/03/2020 15:50:22                         pktgen: traffic completed. 
31/03/2020 15:50:22              dut.10.240.183.61: stop
31/03/2020 15:50:22              dut.10.240.183.61: stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 101260631      TX-packets: 101260631      TX-dropped: 0             

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 100675063      TX-packets: 100675063      TX-dropped: 0             

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 201935694      RX-dropped: 0             RX-total: 201935694
  TX-packets: 201935694      TX-dropped: 0             TX-total: 201935694
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 201935694      RX-dropped: 0             RX-total: 201935694
  TX-packets: 201935694      TX-dropped: 0             TX-total: 201935694
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
31/03/2020 15:50:22              dut.10.240.183.61: start
31/03/2020 15:50:22              dut.10.240.183.61: start
mac packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 24 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 1) -> TX P=0/Q=0 (socket 1) peer=02:00:00:00:00:00
Logical Core 25 (socket 1) forwards packets on 1 streams:
  RX P=0/Q=1 (socket 1) -> TX P=0/Q=1 (socket 1) peer=02:00:00:00:00:00

  mac packet forwarding packets/burst=32
  nb forwarding cores=2 - nb forwarding ports=1
  port 0: RX queue number: 2 Tx queue number: 2
    Rx offloads=0x0 Tx offloads=0x0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x0
    TX queue: 0
      TX desc=0 - TX free threshold=0
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=0
31/03/2020 15:50:23              dut.10.240.183.61: quit
31/03/2020 15:50:24              dut.10.240.183.61: quit
Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 3              TX-dropped: 0             TX-total: 3
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.

Stopping port 0...
Stopping ports...
Done

Shutting down port 0...
Closing ports...
31/03/2020 15:50:24 TestPVPVirtioUserMultiQueuesPortRestart: 
+--------------+----------------------+------------------+------------+----------------+
| FrameSize(B) |         Mode         | Throughput(Mpps) | % linerate |     Cycle      |
+==============+======================+==================+============+================+
| 64           | split_ring_vector_rx | 13.443           | 22.584     | Before Restart |
+--------------+----------------------+------------------+------------+----------------+
| 64           | split_ring_vector_rx | 13.449           | 22.595     | After Restart  |
+--------------+----------------------+------------------+------------+----------------+
31/03/2020 15:50:24 TestPVPVirtioUserMultiQueuesPortRestart: Test Case test_perf_pvp_2queues_test_with_split_ring_vector_rx_path Result PASSED:
31/03/2020 15:50:24              dut.10.240.183.61: kill_all: called by dut and prefix list has value.
31/03/2020 15:50:27                            dts: 
TEST SUITE ENDED: TestPVPVirtioUserMultiQueuesPortRestart

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dts] [PATCH V1] add automation for pvp_virtio_user_multi_queues_port_restart
  2020-03-31  8:29 ` Xiao, QimaiX
@ 2020-03-31  8:42   ` Wang, Yinan
  0 siblings, 0 replies; 4+ messages in thread
From: Wang, Yinan @ 2020-03-31  8:42 UTC (permalink / raw)
  To: Xiao, QimaiX, dts

Acked-by: Wang, Yinan <yinan.wang@intel.com>

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of Xiao, QimaiX
> Sent: 2020年3月31日 16:29
> To: dts@dpdk.org
> Subject: Re: [dts] [PATCH V1] add automation for
> pvp_virtio_user_multi_queues_port_restart
> 
> Tested-by: Xiao Qimai <qimaix.xiao@intel.com>
> 
> Regards,
> Xiao Qimai
> 
> 
> > -----Original Message-----
> > From: Xiao, QimaiX
> > Sent: Tuesday, March 31, 2020 4:22 PM
> > To: dts@dpdk.org
> > Cc: Xiao, QimaiX <qimaix.xiao@intel.com>
> > Subject: [PATCH V1] add automation for
> > pvp_virtio_user_multi_queues_port_restart
> >
> > *. add automation for
> > test_plans:pvp_virtio_user_multi_queues_port_restart.rst
> >
> > Signed-off-by: Xiao Qimai <qimaix.xiao@intel.com>
> > ---
> >  ...te_pvp_virtio_user_multi_queues_port_restart.py | 294
> > +++++++++++++++++++++
> >  1 file changed, 294 insertions(+)
> >  create mode 100644
> > tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> >
> > diff --git
> > a/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> > b/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> > new file mode 100644
> > index 0000000..58d603f
> > --- /dev/null
> > +++ b/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> > @@ -0,0 +1,294 @@
> > +#
> > +# BSD LICENSE
> > +#
> > +# Copyright(c) 2010-2020 Intel Corporation. All rights reserved.
> > +# 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.
> > +
> > +
> > +"""
> > +DPDK Test suite.
> > +This test vhost/virtio-user pvp multi-queues with split virtqueue and
> > +packed virtqueue different rx/tx paths, includes split virtqueue
> > +in-order mergeable, in-order non-mergeable, mergeable, non-mergeable,
> > +vector_rx path test, and packed virtqueue in-order mergeable,
> > +in-order non-mergeable, mergeable, non-mergeable path, also cover
> > +port restart
> > test with each path.
> > +"""
> > +import time
> > +import re
> > +from test_case import TestCase
> > +from packet import Packet
> > +from pktgen import PacketGeneratorHelper
> > +
> > +
> > +class TestPVPVirtioUserMultiQueuesPortRestart(TestCase):
> > +
> > +    def set_up_all(self):
> > +        """
> > +        Run at the start of each test suite.
> > +        """
> > +        self.frame_sizes = [64]
> > +        self.dut_ports = self.dut.get_ports()
> > +        self.verify(len(self.dut_ports) >= 1, "Insufficient ports for testing")
> > +        # get core mask
> > +        self.ports_socket = self.dut.get_numa_id(self.dut_ports[0])
> > +        self.core_list = self.dut.get_core_list('all', socket=self.ports_socket)
> > +        self.dst_mac = self.dut.get_mac_address(self.dut_ports[0])
> > +        self.out_path = '/tmp'
> > +        out = self.tester.send_expect('ls -d %s' % self.out_path, '# ')
> > +        if 'No such file or directory' in out:
> > +            self.tester.send_expect('mkdir -p %s' % self.out_path, '# ')
> > +        # create an instance to set stream field setting
> > +        self.pktgen_helper = PacketGeneratorHelper()
> > +        self.pci_info = self.dut.ports_info[0]['pci']
> > +        self.vhost = self.dut.new_session(suite="vhost-user")
> > +        self.tx_port = self.tester.get_local_port(self.dut_ports[0])
> > +        self.queue_number = 2
> > +        self.dut.kill_all()
> > +
> > +    def set_up(self):
> > +        """
> > +        Run before each test case.
> > +        """
> > +        # Clean the execution ENV
> > +        self.dut.send_expect("rm -rf ./vhost.out", "#")
> > +        # Prepare the result table
> > +        self.table_header = ["FrameSize(B)", "Mode",
> > +                             "Throughput(Mpps)", "% linerate", "Cycle"]
> > +        self.result_table_create(self.table_header)
> > +
> > +    def start_vhost_testpmd(self):
> > +        """
> > +        start testpmd on vhost
> > +        """
> > +        self.dut.send_expect("killall -s INT testpmd", "#")
> > +        self.dut.send_expect("rm -rf ./vhost-net*", "#")
> > +        testcmd = self.dut.target + "/app/testpmd "
> > +        vdev = 'net_vhost0,iface=vhost-net,queues=2,client=0'
> > +        eal_params =
> > + self.dut.create_eal_parameters(cores=self.core_list[2:5],
> > prefix='vhost', ports=[self.pci_info],
> > +                                                    vdevs=[vdev])
> > +        para = " -- -i --nb-cores=2 --rxq=%s --txq=%s --rss-ip" %
> > (self.queue_number, self.queue_number)
> > +        command_line_vhost = testcmd + eal_params + para
> > +        self.vhost.send_expect(command_line_vhost, "testpmd> ", 120)
> > +        self.vhost.send_expect("set fwd mac", "testpmd> ", 120)
> > +        self.vhost.send_expect("start", "testpmd> ", 120)
> > +
> > +    def start_virtio_user_testpmd(self, flag):
> > +        """
> > +        start testpmd in vm depend on different path
> > +        """
> > +        testcmd = self.dut.target + "/app/testpmd "
> > +        vdev = 'net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-
> > net,queues=2'
> > +        if 'packed_ring' in flag:
> > +            vdev += ',packed_vq=1'
> > +        if 'nonmergeable' in flag or 'vector' in flag:
> > +            vdev += ',mrg_rxbuf=0'
> > +        if 'inorder' not in flag:
> > +            vdev += ',in_order=0'
> > +        eal_params =
> > + self.dut.create_eal_parameters(cores=self.core_list[5:8],
> > prefix='virtio', no_pci=True,
> > +                                                    vdevs=[vdev])
> > +        if 'vector' not in flag:
> > +            para = " -- -i --tx-offloads=0x0 --enable-hw-vlan-strip
> > + --rss-ip --nb-
> > cores=2 --rxq=%s --txq=%s --rss-ip" % (
> > +            self.queue_number, self.queue_number)
> > +        else:
> > +            para = " -- -i --tx-offloads=0x0 --rss-ip --nb-cores=2
> > + --rxq=%s --txq=%s
> > --rss-ip" % (
> > +            self.queue_number, self.queue_number)
> > +        command_line_user = testcmd + eal_params + para
> > +        self.dut.send_expect(command_line_user, "testpmd> ", 30)
> > +        self.dut.send_expect("set fwd mac", "testpmd> ", 30)
> > +        self.dut.send_expect("start", "testpmd> ", 30)
> > +
> > +    def check_port_link_status_after_port_restart(self):
> > +        """
> > +        check the link status after port restart
> > +        """
> > +        loop = 1
> > +        port_status = 'down'
> > +        while (loop <= 5):
> > +            out = self.vhost.send_expect("show port info 0", "testpmd> ", 120)
> > +            port_status = re.findall("Link\s*status:\s*([a-z]*)", out)
> > +            if ("down" not in port_status):
> > +                break
> > +            time.sleep(2)
> > +            loop = loop + 1
> > +        self.verify("down" not in port_status, "port can not up after
> > + restart")
> > +
> > +    def port_restart(self, restart_times=1):
> > +        for i in range(restart_times):
> > +            self.vhost.send_expect("stop", "testpmd> ", 120)
> > +            self.vhost.send_expect("port stop 0", "testpmd> ", 120)
> > +            self.vhost.send_expect("clear port stats 0", "testpmd> ", 120)
> > +            self.vhost.send_expect("port start 0", "testpmd> ", 120)
> > +            self.check_port_link_status_after_port_restart()
> > +            self.vhost.send_expect("start", "testpmd> ", 120)
> > +
> > +    def update_table_info(self, case_info, frame_size, Mpps,
> > + throughtput,
> > Cycle):
> > +        results_row = [frame_size]
> > +        results_row.append(case_info)
> > +        results_row.append(Mpps)
> > +        results_row.append(throughtput)
> > +        results_row.append(Cycle)
> > +        self.result_table_add(results_row)
> > +
> > +    def calculate_avg_throughput(self, frame_size):
> > +        """
> > +        start to send packet and get the throughput
> > +        """
> > +        pkt = Packet(pkt_type='IP_RAW', pkt_len=frame_size)
> > +        pkt.config_layer('ether', {'dst': '%s' % self.dst_mac})
> > +        pkt.save_pcapfile(self.tester, "%s/pvp_multipath.pcap" %
> > + (self.out_path))
> > +
> > +        tgenInput = []
> > +        port = self.tester.get_local_port(self.dut_ports[0])
> > +        tgenInput.append((port, port, "%s/pvp_multipath.pcap" %
> > self.out_path))
> > +        self.tester.pktgen.clear_streams()
> > +        fields_config = {'ip': {'dst': {'action': 'random'}}}
> > +        streams =
> > self.pktgen_helper.prepare_stream_from_tginput(tgenInput, 100,
> > fields_config, self.tester.pktgen)
> > +        # set traffic option
> > +        traffic_opt = {'delay': 5}
> > +        _, pps =
> > + self.tester.pktgen.measure_throughput(stream_ids=streams,
> > options=traffic_opt)
> > +        Mpps = pps / 1000000.0
> > +        self.verify(Mpps > 0, "can not receive packets of frame size
> > + %d" %
> > (frame_size))
> > +        throughput = Mpps * 100 / \
> > +                    float(self.wirespeed(self.nic, frame_size, 1))
> > +        return Mpps, throughput
> > +
> > +    def send_and_verify(self, case_info):
> > +        """
> > +        start to send packets and verify it
> > +        """
> > +        for frame_size in self.frame_sizes:
> > +            info = "Running test %s, and %d frame size." %
> > + (self.running_case,
> > frame_size)
> > +            self.logger.info(info)
> > +            Mpps, throughput = self.calculate_avg_throughput(frame_size)
> > +            self.update_table_info(case_info, frame_size, Mpps,
> > + throughput,
> > "Before Restart")
> > +            self.check_packets_of_each_queue(frame_size)
> > +            restart_times = 100 if case_info == 'packed_ring_mergeable' else 1
> > +            self.port_restart(restart_times=restart_times)
> > +            Mpps, throughput = self.calculate_avg_throughput(frame_size)
> > +            self.update_table_info(case_info, frame_size, Mpps,
> > + throughput,
> > "After Restart")
> > +            self.check_packets_of_each_queue(frame_size)
> > +
> > +    def check_packets_of_each_queue(self, frame_size):
> > +        """
> > +        check each queue has receive packets
> > +        """
> > +        out = self.dut.send_expect("stop", "testpmd> ", 60)
> > +        p = re.compile("RX Port= 0/Queue= (\d+) -> TX Port= 0/Queue=
> > \d+.*\n.*RX-packets:\s?(\d+).*TX-packets:\s?(\d+)")
> > +        res = p.findall(out)
> > +        self.res_queues = sorted([int(i[0]) for i in res])
> > +        self.res_rx_pkts = [int(i[1]) for i in res]
> > +        self.res_tx_pkts = [int(i[2]) for i in res]
> > +        self.verify(self.res_queues == list(range(self.queue_number)),
> > +                    "frame_size: %s, expect %s queues to handle
> > + packets, result %s
> > queues" % (frame_size, list(range(self.queue_number)),
> > self.res_queues))
> > +        self.verify(all(self.res_rx_pkts), "each queue should has rx
> > + packets,
> > result: %s" % self.res_rx_pkts)
> > +        self.verify(all(self.res_tx_pkts), "each queue should has tx
> > + packets,
> > result: %s" % self.res_tx_pkts)
> > +        self.dut.send_expect("start", "testpmd> ", 60)
> > +
> > +    def close_all_testpmd(self):
> > +        """
> > +        close testpmd about vhost-user and vm_testpmd
> > +        """
> > +        self.vhost.send_expect("quit", "#", 60)
> > +        self.dut.send_expect("quit", "#", 60)
> > +
> > +    def
> > test_perf_pvp_2queues_test_with_packed_ring_mergeable_path(self):
> > +        self.start_vhost_testpmd()
> > +        self.start_virtio_user_testpmd(flag="packed_ring_mergeable")
> > +        self.send_and_verify("packed_ring_mergeable")
> > +        self.close_all_testpmd()
> > +        self.result_table_print()
> > +
> > +    def
> > test_perf_pvp_2queues_test_with_packed_ring_nonmergeable_path(self):
> > +        self.start_vhost_testpmd()
> > +        self.start_virtio_user_testpmd(flag="packed_ring_nonmergeable")
> > +        self.send_and_verify("packed_ring_nonmergeable")
> > +        self.close_all_testpmd()
> > +        self.result_table_print()
> > +
> > +    def
> > test_perf_pvp_2queues_test_with_split_ring_inorder_mergeable_path(sel
> > f):
> > +        self.start_vhost_testpmd()
> > +        self.start_virtio_user_testpmd(flag="split_ring_inorder_mergeable")
> > +        self.send_and_verify("split_ring_inorder_mergeable")
> > +        self.close_all_testpmd()
> > +        self.result_table_print()
> > +
> > +    def
> > test_perf_pvp_2queues_test_with_split_ring_inorder_nonmergeable_path
> > (self):
> > +        self.start_vhost_testpmd()
> > +
> > self.start_virtio_user_testpmd(flag="split_ring_inorder_nonmergeable")
> > +        self.send_and_verify("split_ring_inorder_nonmergeable")
> > +        self.close_all_testpmd()
> > +        self.result_table_print()
> > +
> > +    def test_perf_pvp_2queues_test_with_split_ring_mergeable_path(self):
> > +        self.start_vhost_testpmd()
> > +        self.start_virtio_user_testpmd(flag="split_ring_mergeable")
> > +        self.send_and_verify("split_ring_mergeable")
> > +        self.close_all_testpmd()
> > +        self.result_table_print()
> > +
> > +    def
> > test_perf_pvp_2queues_test_with_split_ring_nonmergeable_path(self):
> > +        self.start_vhost_testpmd()
> > +        self.start_virtio_user_testpmd(flag="split_ring_nonmergeable")
> > +        self.send_and_verify("split_ring_nonmergeable")
> > +        self.close_all_testpmd()
> > +        self.result_table_print()
> > +
> > +    def test_perf_pvp_2queues_test_with_split_ring_vector_rx_path(self):
> > +        self.start_vhost_testpmd()
> > +        self.start_virtio_user_testpmd(flag="split_ring_vector_rx")
> > +        self.send_and_verify("split_ring_vector_rx")
> > +        self.close_all_testpmd()
> > +        self.result_table_print()
> > +
> > +    def
> > test_perf_pvp_2queues_test_with_packed_ring_inorder_mergeable_path(
> > self):
> > +        self.start_vhost_testpmd()
> > +        self.start_virtio_user_testpmd(flag="packed_ring_inorder_mergeable")
> > +        self.send_and_verify("packed_ring_inorder_mergeable")
> > +        self.close_all_testpmd()
> > +        self.result_table_print()
> > +
> > +    def
> > test_perf_pvp_2queues_test_with_packed_ring_inorder_nonmergeable_p
> > ath(self):
> > +        self.start_vhost_testpmd()
> > +
> > self.start_virtio_user_testpmd(flag="packed_ring_inorder_nonmergeable"
> > )
> > +        self.send_and_verify("packed_ring_inorder_nonmergeable")
> > +        self.close_all_testpmd()
> > +        self.result_table_print()
> > +
> > +    def tear_down(self):
> > +        """
> > +        Run after each test case.
> > +        """
> > +        self.dut.kill_all()
> > +        time.sleep(2)
> > +
> > +    def tear_down_all(self):
> > +        """
> > +        Run after each test suite.
> > +        """
> > +        self.dut.close_session(self.vhost)
> > --
> > 1.8.3.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dts] [PATCH V1] add automation for pvp_virtio_user_multi_queues_port_restart
  2020-03-31  8:22 [dts] [PATCH V1] add automation for pvp_virtio_user_multi_queues_port_restart Xiao Qimai
  2020-03-31  8:29 ` Xiao, QimaiX
@ 2020-04-16  8:49 ` Tu, Lijuan
  1 sibling, 0 replies; 4+ messages in thread
From: Tu, Lijuan @ 2020-04-16  8:49 UTC (permalink / raw)
  To: Xiao, QimaiX, dts; +Cc: Xiao, QimaiX

Applied, thanks

> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Xiao Qimai
> Sent: Tuesday, March 31, 2020 4:22 PM
> To: dts@dpdk.org
> Cc: Xiao, QimaiX <qimaix.xiao@intel.com>
> Subject: [dts] [PATCH V1] add automation for
> pvp_virtio_user_multi_queues_port_restart
> 
> *. add automation for
> test_plans:pvp_virtio_user_multi_queues_port_restart.rst
> 
> Signed-off-by: Xiao Qimai <qimaix.xiao@intel.com>
> ---
>  ...te_pvp_virtio_user_multi_queues_port_restart.py | 294
> +++++++++++++++++++++
>  1 file changed, 294 insertions(+)
>  create mode 100644
> tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> 
> diff --git a/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> b/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> new file mode 100644
> index 0000000..58d603f
> --- /dev/null
> +++ b/tests/TestSuite_pvp_virtio_user_multi_queues_port_restart.py
> @@ -0,0 +1,294 @@
> +#
> +# BSD LICENSE
> +#
> +# Copyright(c) 2010-2020 Intel Corporation. All rights reserved.
> +# 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.
> +
> +
> +"""
> +DPDK Test suite.
> +This test vhost/virtio-user pvp multi-queues with split virtqueue and
> +packed virtqueue different rx/tx paths, includes split virtqueue
> +in-order mergeable, in-order non-mergeable, mergeable, non-mergeable,
> +vector_rx path test, and packed virtqueue in-order mergeable, in-order
> +non-mergeable, mergeable, non-mergeable path, also cover port restart
> test with each path.
> +"""
> +import time
> +import re
> +from test_case import TestCase
> +from packet import Packet
> +from pktgen import PacketGeneratorHelper
> +
> +
> +class TestPVPVirtioUserMultiQueuesPortRestart(TestCase):
> +
> +    def set_up_all(self):
> +        """
> +        Run at the start of each test suite.
> +        """
> +        self.frame_sizes = [64]
> +        self.dut_ports = self.dut.get_ports()
> +        self.verify(len(self.dut_ports) >= 1, "Insufficient ports for testing")
> +        # get core mask
> +        self.ports_socket = self.dut.get_numa_id(self.dut_ports[0])
> +        self.core_list = self.dut.get_core_list('all', socket=self.ports_socket)
> +        self.dst_mac = self.dut.get_mac_address(self.dut_ports[0])
> +        self.out_path = '/tmp'
> +        out = self.tester.send_expect('ls -d %s' % self.out_path, '# ')
> +        if 'No such file or directory' in out:
> +            self.tester.send_expect('mkdir -p %s' % self.out_path, '# ')
> +        # create an instance to set stream field setting
> +        self.pktgen_helper = PacketGeneratorHelper()
> +        self.pci_info = self.dut.ports_info[0]['pci']
> +        self.vhost = self.dut.new_session(suite="vhost-user")
> +        self.tx_port = self.tester.get_local_port(self.dut_ports[0])
> +        self.queue_number = 2
> +        self.dut.kill_all()
> +
> +    def set_up(self):
> +        """
> +        Run before each test case.
> +        """
> +        # Clean the execution ENV
> +        self.dut.send_expect("rm -rf ./vhost.out", "#")
> +        # Prepare the result table
> +        self.table_header = ["FrameSize(B)", "Mode",
> +                             "Throughput(Mpps)", "% linerate", "Cycle"]
> +        self.result_table_create(self.table_header)
> +
> +    def start_vhost_testpmd(self):
> +        """
> +        start testpmd on vhost
> +        """
> +        self.dut.send_expect("killall -s INT testpmd", "#")
> +        self.dut.send_expect("rm -rf ./vhost-net*", "#")
> +        testcmd = self.dut.target + "/app/testpmd "
> +        vdev = 'net_vhost0,iface=vhost-net,queues=2,client=0'
> +        eal_params = self.dut.create_eal_parameters(cores=self.core_list[2:5],
> prefix='vhost', ports=[self.pci_info],
> +                                                    vdevs=[vdev])
> +        para = " -- -i --nb-cores=2 --rxq=%s --txq=%s --rss-ip" %
> (self.queue_number, self.queue_number)
> +        command_line_vhost = testcmd + eal_params + para
> +        self.vhost.send_expect(command_line_vhost, "testpmd> ", 120)
> +        self.vhost.send_expect("set fwd mac", "testpmd> ", 120)
> +        self.vhost.send_expect("start", "testpmd> ", 120)
> +
> +    def start_virtio_user_testpmd(self, flag):
> +        """
> +        start testpmd in vm depend on different path
> +        """
> +        testcmd = self.dut.target + "/app/testpmd "
> +        vdev = 'net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-
> net,queues=2'
> +        if 'packed_ring' in flag:
> +            vdev += ',packed_vq=1'
> +        if 'nonmergeable' in flag or 'vector' in flag:
> +            vdev += ',mrg_rxbuf=0'
> +        if 'inorder' not in flag:
> +            vdev += ',in_order=0'
> +        eal_params = self.dut.create_eal_parameters(cores=self.core_list[5:8],
> prefix='virtio', no_pci=True,
> +                                                    vdevs=[vdev])
> +        if 'vector' not in flag:
> +            para = " -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-
> cores=2 --rxq=%s --txq=%s --rss-ip" % (
> +            self.queue_number, self.queue_number)
> +        else:
> +            para = " -- -i --tx-offloads=0x0 --rss-ip --nb-cores=2 --rxq=%s --txq=%s
> --rss-ip" % (
> +            self.queue_number, self.queue_number)
> +        command_line_user = testcmd + eal_params + para
> +        self.dut.send_expect(command_line_user, "testpmd> ", 30)
> +        self.dut.send_expect("set fwd mac", "testpmd> ", 30)
> +        self.dut.send_expect("start", "testpmd> ", 30)
> +
> +    def check_port_link_status_after_port_restart(self):
> +        """
> +        check the link status after port restart
> +        """
> +        loop = 1
> +        port_status = 'down'
> +        while (loop <= 5):
> +            out = self.vhost.send_expect("show port info 0", "testpmd> ", 120)
> +            port_status = re.findall("Link\s*status:\s*([a-z]*)", out)
> +            if ("down" not in port_status):
> +                break
> +            time.sleep(2)
> +            loop = loop + 1
> +        self.verify("down" not in port_status, "port can not up after
> + restart")
> +
> +    def port_restart(self, restart_times=1):
> +        for i in range(restart_times):
> +            self.vhost.send_expect("stop", "testpmd> ", 120)
> +            self.vhost.send_expect("port stop 0", "testpmd> ", 120)
> +            self.vhost.send_expect("clear port stats 0", "testpmd> ", 120)
> +            self.vhost.send_expect("port start 0", "testpmd> ", 120)
> +            self.check_port_link_status_after_port_restart()
> +            self.vhost.send_expect("start", "testpmd> ", 120)
> +
> +    def update_table_info(self, case_info, frame_size, Mpps, throughtput,
> Cycle):
> +        results_row = [frame_size]
> +        results_row.append(case_info)
> +        results_row.append(Mpps)
> +        results_row.append(throughtput)
> +        results_row.append(Cycle)
> +        self.result_table_add(results_row)
> +
> +    def calculate_avg_throughput(self, frame_size):
> +        """
> +        start to send packet and get the throughput
> +        """
> +        pkt = Packet(pkt_type='IP_RAW', pkt_len=frame_size)
> +        pkt.config_layer('ether', {'dst': '%s' % self.dst_mac})
> +        pkt.save_pcapfile(self.tester, "%s/pvp_multipath.pcap" %
> + (self.out_path))
> +
> +        tgenInput = []
> +        port = self.tester.get_local_port(self.dut_ports[0])
> +        tgenInput.append((port, port, "%s/pvp_multipath.pcap" %
> self.out_path))
> +        self.tester.pktgen.clear_streams()
> +        fields_config = {'ip': {'dst': {'action': 'random'}}}
> +        streams = self.pktgen_helper.prepare_stream_from_tginput(tgenInput,
> 100, fields_config, self.tester.pktgen)
> +        # set traffic option
> +        traffic_opt = {'delay': 5}
> +        _, pps = self.tester.pktgen.measure_throughput(stream_ids=streams,
> options=traffic_opt)
> +        Mpps = pps / 1000000.0
> +        self.verify(Mpps > 0, "can not receive packets of frame size %d" %
> (frame_size))
> +        throughput = Mpps * 100 / \
> +                    float(self.wirespeed(self.nic, frame_size, 1))
> +        return Mpps, throughput
> +
> +    def send_and_verify(self, case_info):
> +        """
> +        start to send packets and verify it
> +        """
> +        for frame_size in self.frame_sizes:
> +            info = "Running test %s, and %d frame size." % (self.running_case,
> frame_size)
> +            self.logger.info(info)
> +            Mpps, throughput = self.calculate_avg_throughput(frame_size)
> +            self.update_table_info(case_info, frame_size, Mpps, throughput,
> "Before Restart")
> +            self.check_packets_of_each_queue(frame_size)
> +            restart_times = 100 if case_info == 'packed_ring_mergeable' else 1
> +            self.port_restart(restart_times=restart_times)
> +            Mpps, throughput = self.calculate_avg_throughput(frame_size)
> +            self.update_table_info(case_info, frame_size, Mpps, throughput,
> "After Restart")
> +            self.check_packets_of_each_queue(frame_size)
> +
> +    def check_packets_of_each_queue(self, frame_size):
> +        """
> +        check each queue has receive packets
> +        """
> +        out = self.dut.send_expect("stop", "testpmd> ", 60)
> +        p = re.compile("RX Port= 0/Queue= (\d+) -> TX Port= 0/Queue=
> \d+.*\n.*RX-packets:\s?(\d+).*TX-packets:\s?(\d+)")
> +        res = p.findall(out)
> +        self.res_queues = sorted([int(i[0]) for i in res])
> +        self.res_rx_pkts = [int(i[1]) for i in res]
> +        self.res_tx_pkts = [int(i[2]) for i in res]
> +        self.verify(self.res_queues == list(range(self.queue_number)),
> +                    "frame_size: %s, expect %s queues to handle packets, result %s
> queues" % (frame_size, list(range(self.queue_number)), self.res_queues))
> +        self.verify(all(self.res_rx_pkts), "each queue should has rx packets,
> result: %s" % self.res_rx_pkts)
> +        self.verify(all(self.res_tx_pkts), "each queue should has tx packets,
> result: %s" % self.res_tx_pkts)
> +        self.dut.send_expect("start", "testpmd> ", 60)
> +
> +    def close_all_testpmd(self):
> +        """
> +        close testpmd about vhost-user and vm_testpmd
> +        """
> +        self.vhost.send_expect("quit", "#", 60)
> +        self.dut.send_expect("quit", "#", 60)
> +
> +    def
> test_perf_pvp_2queues_test_with_packed_ring_mergeable_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="packed_ring_mergeable")
> +        self.send_and_verify("packed_ring_mergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_packed_ring_nonmergeable_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="packed_ring_nonmergeable")
> +        self.send_and_verify("packed_ring_nonmergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_split_ring_inorder_mergeable_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="split_ring_inorder_mergeable")
> +        self.send_and_verify("split_ring_inorder_mergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_split_ring_inorder_nonmergeable_path(s
> elf):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="split_ring_inorder_nonmergeable")
> +        self.send_and_verify("split_ring_inorder_nonmergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def test_perf_pvp_2queues_test_with_split_ring_mergeable_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="split_ring_mergeable")
> +        self.send_and_verify("split_ring_mergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_split_ring_nonmergeable_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="split_ring_nonmergeable")
> +        self.send_and_verify("split_ring_nonmergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def test_perf_pvp_2queues_test_with_split_ring_vector_rx_path(self):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="split_ring_vector_rx")
> +        self.send_and_verify("split_ring_vector_rx")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_packed_ring_inorder_mergeable_path(se
> lf):
> +        self.start_vhost_testpmd()
> +        self.start_virtio_user_testpmd(flag="packed_ring_inorder_mergeable")
> +        self.send_and_verify("packed_ring_inorder_mergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def
> test_perf_pvp_2queues_test_with_packed_ring_inorder_nonmergeable_pat
> h(self):
> +        self.start_vhost_testpmd()
> +
> self.start_virtio_user_testpmd(flag="packed_ring_inorder_nonmergeable")
> +        self.send_and_verify("packed_ring_inorder_nonmergeable")
> +        self.close_all_testpmd()
> +        self.result_table_print()
> +
> +    def tear_down(self):
> +        """
> +        Run after each test case.
> +        """
> +        self.dut.kill_all()
> +        time.sleep(2)
> +
> +    def tear_down_all(self):
> +        """
> +        Run after each test suite.
> +        """
> +        self.dut.close_session(self.vhost)
> --
> 1.8.3.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-04-16  8:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-31  8:22 [dts] [PATCH V1] add automation for pvp_virtio_user_multi_queues_port_restart Xiao Qimai
2020-03-31  8:29 ` Xiao, QimaiX
2020-03-31  8:42   ` Wang, Yinan
2020-04-16  8:49 ` Tu, Lijuan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).