From: Wei Ling <weix.ling@intel.com>
To: dts@dpdk.org
Cc: Wei Ling <weix.ling@intel.com>
Subject: [dts][PATCH V2] tests/vm2vm_virtio_pmd: optimization testsuite
Date: Tue, 3 Jan 2023 16:05:04 +0800 [thread overview]
Message-ID: <20230103080504.8913-1-weix.ling@intel.com> (raw)
1.Modify testcase name to discriminate different virtio protocol version.
2.Delete unused function and steps.
Signed-off-by: Wei Ling <weix.ling@intel.com>
---
tests/TestSuite_vm2vm_virtio_pmd.py | 234 +++++++++-------------------
1 file changed, 75 insertions(+), 159 deletions(-)
diff --git a/tests/TestSuite_vm2vm_virtio_pmd.py b/tests/TestSuite_vm2vm_virtio_pmd.py
index 5721e829..293ea034 100644
--- a/tests/TestSuite_vm2vm_virtio_pmd.py
+++ b/tests/TestSuite_vm2vm_virtio_pmd.py
@@ -4,7 +4,6 @@
import re
import time
-
import framework.utils as utils
from framework.packet import Packet
from framework.pmd_output import PmdOutput
@@ -14,23 +13,28 @@ from framework.virt_common import VM
class TestVM2VMVirtioPMD(TestCase):
def set_up_all(self):
+ """
+ Run at the start of each test suite.
+ """
self.dut_ports = self.dut.get_ports()
- self.bind_nic_driver(self.dut_ports)
- self.memory_channel = self.dut.get_memory_channels()
+ self.ports_socket = self.dut.get_numa_id(self.dut_ports[0])
self.vm_num = 2
self.dump_pcap = "/root/pdump-rx.pcap"
- socket_num = len(set([int(core["socket"]) for core in self.dut.cores]))
- self.socket_mem = ",".join(["1024"] * socket_num)
self.base_dir = self.dut.base_dir.replace("~", "/root")
- self.vhost_user = self.dut.new_session(suite="vhost")
- self.virtio_user0 = None
- self.virtio_user1 = None
+ self.vhost_user = self.dut.new_session(suite="vhost-user")
+ self.virtio_user0 = self.dut.new_session(suite="virtio-user0")
+ self.virtio_user1 = self.dut.new_session(suite="virtio-user1")
+ self.vhost_user_pmd = PmdOutput(self.dut, self.vhost_user)
+ self.virtio_user0_pmd = PmdOutput(self.dut, self.virtio_user0)
+ self.virtio_user1_pmd = PmdOutput(self.dut, self.virtio_user1)
+ self.cores_list = self.dut.get_core_list(config="all", socket=self.ports_socket)
+ self.vhost_user_core = self.cores_list[0:2]
+ self.virtio_user0_core = self.cores_list[2:4]
+ self.virtio_user1_core = self.cores_list[4:6]
self.pci_info = self.dut.ports_info[0]["pci"]
- self.app_testpmd_path = self.dut.apps_name["test-pmd"]
- self.app_pdump = self.dut.apps_name["pdump"]
- self.testpmd_name = self.app_testpmd_path.split("/")[-1]
- self.pmd_vhost = PmdOutput(self.dut, self.vhost_user)
- self.vm_config = "vhost_sample"
+ self.testpmd_path = self.dut.apps_name["test-pmd"]
+ self.pdump_path = self.dut.apps_name["pdump"]
+ self.testpmd_name = self.testpmd_path.split("/")[-1]
def set_up(self):
"""
@@ -50,33 +54,25 @@ class TestVM2VMVirtioPMD(TestCase):
self.vm_dut = []
self.vm = []
- def get_core_list(self, cores_num):
- """
- create core mask
- """
- self.core_config = "1S/%dC/1T" % cores_num
- self.cores_list = self.dut.get_core_list(self.core_config)
- self.verify(
- len(self.cores_list) >= cores_num,
- "There has not enough cores to test this case %s" % self.running_case,
- )
-
def start_vhost_testpmd(self):
"""
- launch the testpmd on vhost side
+ launch the testpmd on vhost-user side
"""
- vhost_mask = self.cores_list[0:2]
- testcmd = self.app_testpmd_path + " "
- vdev1 = "--vdev 'net_vhost0,iface=%s/vhost-net0,queues=1' " % self.base_dir
- vdev2 = "--vdev 'net_vhost1,iface=%s/vhost-net1,queues=1' " % self.base_dir
- eal_params = self.dut.create_eal_parameters(
- cores=vhost_mask, no_pci=True, prefix="vhost"
+ eal_param = (
+ "--vdev 'net_vhost0,iface=vhost-net0,queues=1' "
+ "--vdev 'net_vhost1,iface=vhost-net1,queues=1'"
+ )
+ param = "--nb-cores=1 --txd=1024 --rxd=1024"
+ self.vhost_user_pmd.start_testpmd(
+ cores=self.vhost_user_core,
+ eal_param=eal_param,
+ param=param,
+ no_pci=True,
+ prefix="vhost-user",
+ fixed_prefix=True,
)
- para = " -- -i --nb-cores=1 --txd=1024 --rxd=1024"
- self.command_line = testcmd + eal_params + vdev1 + vdev2 + para
- self.vhost_user.send_expect(self.command_line, "testpmd> ", 30)
- self.vhost_user.send_expect("set fwd mac", "testpmd> ", 30)
- self.vhost_user.send_expect("start", "testpmd> ", 30)
+ self.vhost_user_pmd.execute_cmd("set fwd mac")
+ self.vhost_user_pmd.execute_cmd("start")
@property
def check_2M_env(self):
@@ -89,46 +85,46 @@ class TestVM2VMVirtioPMD(TestCase):
"""
launch the testpmd as virtio with vhost_net1
"""
- self.virtio_user1 = self.dut.new_session(suite="virtio_user1")
- virtio_mask = self.cores_list[2:4]
- testcmd = self.app_testpmd_path + " "
- vdev = (
- "--vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,%s "
+ eal_param = (
+ "--vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=vhost-net1,queues=1,%s "
% path_mode
)
- eal_params = self.dut.create_eal_parameters(
- cores=virtio_mask, no_pci=True, prefix="virtio", ports=[self.pci_info]
- )
if self.check_2M_env:
- eal_params += " --single-file-segments"
- para = " -- -i --nb-cores=1 --txd=1024 --rxd=1024 %s" % extern_param
- command_line = testcmd + eal_params + vdev + para
- self.virtio_user1.send_expect(command_line, "testpmd> ", 30)
- self.virtio_user1.send_expect("set fwd rxonly", "testpmd> ", 30)
- self.virtio_user1.send_expect("start", "testpmd> ", 30)
+ eal_param += " --single-file-segments"
+ param = "--nb-cores=1 --txd=1024 --rxd=1024 %s" % extern_param
+ self.virtio_user1_pmd.start_testpmd(
+ cores=self.virtio_user1_core,
+ eal_param=eal_param,
+ param=param,
+ no_pci=True,
+ prefix="virtio-user1",
+ fixed_prefix=True,
+ )
+ self.virtio_user1_pmd.execute_cmd("set fwd rxonly")
+ self.virtio_user1_pmd.execute_cmd("start")
def start_virtio_testpmd_with_vhost_net0(self, path_mode, extern_param):
"""
launch the testpmd as virtio with vhost_net0
"""
- self.virtio_user0 = self.dut.new_session(suite="virtio_user0")
- virtio_mask = self.cores_list[4:6]
- testcmd = self.app_testpmd_path + " "
- vdev = (
- "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net0,queues=1,%s "
+ eal_param = (
+ "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=vhost-net0,queues=1,%s "
% path_mode
)
- eal_params = self.dut.create_eal_parameters(
- cores=virtio_mask, no_pci=True, prefix="virtio0", ports=[self.pci_info]
- )
if self.check_2M_env:
- eal_params += " --single-file-segments "
- para = " -- -i --nb-cores=1 --txd=1024 --rxd=1024 %s" % extern_param
- command_line = testcmd + eal_params + vdev + para
- self.virtio_user0.send_expect(command_line, "testpmd> ", 30)
- self.virtio_user0.send_expect("set txpkts 2000,2000,2000,2000", "testpmd> ", 30)
- self.virtio_user0.send_expect("set burst 1", "testpmd> ", 30)
- self.virtio_user0.send_expect("start tx_first 10", "testpmd> ", 30)
+ eal_param += " --single-file-segments"
+ param = "--nb-cores=1 --txd=1024 --rxd=1024 %s" % extern_param
+ self.virtio_user0_pmd.start_testpmd(
+ cores=self.virtio_user0_core,
+ eal_param=eal_param,
+ param=param,
+ no_pci=True,
+ prefix="virtio-user0",
+ fixed_prefix=True,
+ )
+ self.virtio_user0_pmd.execute_cmd("set txpkts 2000,2000,2000,2000")
+ self.virtio_user0_pmd.execute_cmd("set burst 1")
+ self.virtio_user0_pmd.execute_cmd("start tx_first 10")
def start_vm_testpmd(
self, vm_client, path_mode, extern_param="", virtio_net_pci=""
@@ -142,7 +138,7 @@ class TestVM2VMVirtioPMD(TestCase):
w_pci_str = " ".join(w_pci_list)
if path_mode == "mergeable":
command = (
- self.app_testpmd_path
+ self.testpmd_path
+ " -c 0x3 -n 4 "
+ "--file-prefix=virtio -- -i --tx-offloads=0x00 --rx-offloads=0x00002000 "
+ "--enable-hw-vlan-strip "
@@ -151,7 +147,7 @@ class TestVM2VMVirtioPMD(TestCase):
vm_client.send_expect(command % extern_param, "testpmd> ", 20)
elif path_mode == "normal":
command = (
- self.app_testpmd_path
+ self.testpmd_path
+ " -c 0x3 -n 4 "
+ "--file-prefix=virtio -- -i --tx-offloads=0x00 "
+ "--enable-hw-vlan-strip "
@@ -160,7 +156,7 @@ class TestVM2VMVirtioPMD(TestCase):
vm_client.send_expect(command % extern_param, "testpmd> ", 20)
elif path_mode == "vector_rx":
command = (
- self.app_testpmd_path
+ self.testpmd_path
+ " -c 0x3 -n 4 "
+ "--file-prefix=virtio %s -- -i "
)
@@ -169,12 +165,12 @@ class TestVM2VMVirtioPMD(TestCase):
def launch_pdump_to_capture_pkt(self, client_dut, dump_port):
"""
- bootup pdump in VM
+ launch pdump in VM
"""
self.pdump_session = client_dut.new_session(suite="pdump")
if hasattr(client_dut, "vm_name"):
command_line = (
- self.app_pdump
+ self.pdump_path
+ " "
+ "-v --file-prefix=virtio -- "
+ "--pdump '%s,queue=*,rx-dev=%s,mbuf-size=8000'"
@@ -184,7 +180,7 @@ class TestVM2VMVirtioPMD(TestCase):
)
else:
command_line = (
- self.app_pdump
+ self.pdump_path
+ " "
+ "-v --file-prefix=virtio_%s -- "
+ "--pdump '%s,queue=*,rx-dev=%s,mbuf-size=8000'"
@@ -198,17 +194,16 @@ class TestVM2VMVirtioPMD(TestCase):
self,
setting_args="",
server_mode=False,
- opt_queue=None,
- vm_config="vhost_sample",
+ opt_queue=1,
):
vm_params = {}
- if opt_queue is not None:
+ if opt_queue > 1:
vm_params["opt_queue"] = opt_queue
for i in range(self.vm_num):
vm_dut = None
- vm_info = VM(self.dut, "vm%d" % i, vm_config)
+ vm_info = VM(self.dut, "vm%d" % i, "vhost_sample")
vm_params["driver"] = "vhost-user"
if not server_mode:
@@ -300,13 +295,12 @@ class TestVM2VMVirtioPMD(TestCase):
self.dut.close_session(self.virtio_user0)
self.virtio_user0 = None
- def test_vm2vm_vhost_user_virtio095_pmd_with_vector_rx_path(self):
+ def test_vm2vm_vhost_user_virtio95_pmd_with_vector_rx_path(self):
"""
Test Case 1: VM2VM vhost-user/virtio0.95-pmd with vector_rx path
"""
path_mode = "vector_rx"
setting_args = "disable-modern=true,mrg_rxbuf=off,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on"
- self.get_core_list(2)
self.start_vhost_testpmd()
self.start_vms(setting_args=setting_args)
self.start_vm_testpmd(
@@ -321,13 +315,12 @@ class TestVM2VMVirtioPMD(TestCase):
)
self.send_and_verify(mode="virtio 0.95 vector_rx", path=path_mode)
- def test_vm2vm_vhost_user_virtio095_pmd_with_normal_path(self):
+ def test_vm2vm_vhost_user_virtio95_pmd_with_normal_path(self):
"""
Test Case 2: VM2VM vhost-user/virtio0.95-pmd with normal path
"""
setting_args = "disable-modern=true,mrg_rxbuf=off,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on"
path_mode = "normal"
- self.get_core_list(2)
self.start_vhost_testpmd()
self.start_vms(setting_args=setting_args)
self.start_vm_testpmd(self.vm_dut[0], path_mode)
@@ -340,7 +333,6 @@ class TestVM2VMVirtioPMD(TestCase):
"""
path_mode = "vector_rx"
setting_args = "disable-modern=false,mrg_rxbuf=off,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on"
- self.get_core_list(2)
self.start_vhost_testpmd()
self.start_vms(setting_args=setting_args)
self.start_vm_testpmd(
@@ -355,20 +347,19 @@ class TestVM2VMVirtioPMD(TestCase):
)
self.send_and_verify(mode="virtio 1.0 vector_rx", path=path_mode)
- def test_vhost_vm2vm_virito_10_pmd_with_normal_path(self):
+ def test_vm2vm_vhost_user_virito10_pmd_with_normal_path(self):
"""
Test Case 4: VM2VM vhost-user/virtio1.0-pmd with normal path
"""
path_mode = "normal"
setting_args = "disable-modern=false,mrg_rxbuf=off,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on"
- self.get_core_list(2)
self.start_vhost_testpmd()
self.start_vms(setting_args=setting_args)
self.start_vm_testpmd(self.vm_dut[0], path_mode)
self.start_vm_testpmd(self.vm_dut[1], path_mode)
self.send_and_verify(mode="virtio 1.0 normal path", path=path_mode)
- def test_vm2vm_vhost_user_virtio095_pmd_with_mergeable_path_with_payload_valid_check(
+ def test_vm2vm_vhost_user_virtio95_pmd_with_mergeable_path_with_payload_valid_check(
self,
):
"""
@@ -378,7 +369,6 @@ class TestVM2VMVirtioPMD(TestCase):
setting_args = "disable-modern=true,mrg_rxbuf=on,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on"
extern_param = "--max-pkt-len=9600"
dump_port = "port=0"
- self.get_core_list(2)
self.start_vhost_testpmd()
self.start_vms(setting_args=setting_args)
# start testpmd and pdump in VM0
@@ -404,7 +394,6 @@ class TestVM2VMVirtioPMD(TestCase):
setting_args = "disable-modern=false,mrg_rxbuf=on,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on"
extern_param = "--max-pkt-len=9600"
dump_port = "port=0"
- self.get_core_list(2)
self.start_vhost_testpmd()
self.start_vms(setting_args=setting_args)
# start testpmd and pdump in VM0
@@ -430,7 +419,6 @@ class TestVM2VMVirtioPMD(TestCase):
setting_args = "disable-modern=false,mrg_rxbuf=on,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,packed=on"
extern_param = "--max-pkt-len=9600"
dump_port = "port=0"
- self.get_core_list(2)
self.start_vhost_testpmd()
self.start_vms(setting_args=setting_args)
# start testpmd and pdump in VM0
@@ -446,13 +434,12 @@ class TestVM2VMVirtioPMD(TestCase):
# check the packet in vm0
self.check_packet_payload_valid(self.vm_dut[0])
- def test_vhost_vm2vm_virito_11_pmd_with_normal_path(self):
+ def test_vm2vm_vhost_user_virito11_pmd_with_normal_path(self):
"""
Test Case 8: VM2VM vhost-user/virtio1.1-pmd with normal path
"""
path_mode = "normal"
setting_args = "disable-modern=false,mrg_rxbuf=off,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,packed=on"
- self.get_core_list(2)
self.start_vhost_testpmd()
self.start_vms(setting_args=setting_args)
self.start_vm_testpmd(self.vm_dut[0], path_mode)
@@ -487,77 +474,6 @@ class TestVM2VMVirtioPMD(TestCase):
vm_dut.send_expect("clear port stats all", "testpmd> ", 30)
vm_dut.send_expect("start", "testpmd> ", 30)
- def prepare_test_env(
- self,
- no_pci=True,
- client_mode=False,
- enable_queues=1,
- nb_cores=2,
- setting_args="",
- server_mode=False,
- opt_queue=None,
- rxq_txq=None,
- vm_config="vhost_sample",
- ):
- self.start_vhost_testpmd_cbdma(
- no_pci=no_pci,
- client_mode=client_mode,
- enable_queues=enable_queues,
- nb_cores=nb_cores,
- rxq_txq=rxq_txq,
- )
- self.start_vms(
- setting_args=setting_args,
- server_mode=server_mode,
- opt_queue=opt_queue,
- vm_config=vm_config,
- )
-
- def start_vhost_testpmd_cbdma(
- self,
- no_pci=True,
- client_mode=False,
- enable_queues=1,
- nb_cores=2,
- rxq_txq=None,
- ):
- """
- launch the testpmd with different parameters
- """
- testcmd = self.app_testpmd_path + " "
- if not client_mode:
- vdev1 = "--vdev 'net_vhost0,iface=%s/vhost-net0,queues=%d' " % (
- self.base_dir,
- enable_queues,
- )
- vdev2 = "--vdev 'net_vhost1,iface=%s/vhost-net1,queues=%d' " % (
- self.base_dir,
- enable_queues,
- )
- else:
- vdev1 = "--vdev 'net_vhost0,iface=%s/vhost-net0,client=1,queues=%d' " % (
- self.base_dir,
- enable_queues,
- )
- vdev2 = "--vdev 'net_vhost1,iface=%s/vhost-net1,client=1,queues=%d' " % (
- self.base_dir,
- enable_queues,
- )
- eal_params = self.dut.create_eal_parameters(
- cores=self.cores_list, prefix="vhost", no_pci=no_pci
- )
- if rxq_txq is None:
- params = " -- -i --nb-cores=%d --txd=1024 --rxd=1024" % nb_cores
- else:
- params = " -- -i --nb-cores=%d --txd=1024 --rxd=1024 --rxq=%d --txq=%d" % (
- nb_cores,
- rxq_txq,
- rxq_txq,
- )
- self.command_line = testcmd + eal_params + vdev1 + vdev2 + params
- self.pmd_vhost.execute_cmd(self.command_line, timeout=30)
- self.pmd_vhost.execute_cmd("start", timeout=30)
-
def tear_down(self):
"""
Run after each test case.
--
2.25.1
reply other threads:[~2023-01-03 8:14 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230103080504.8913-1-weix.ling@intel.com \
--to=weix.ling@intel.com \
--cc=dts@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).