From patchwork Tue Aug 16 09:03:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ling, WeiX" X-Patchwork-Id: 115166 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2BBF1A00C3; Tue, 16 Aug 2022 11:08:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2303740A79; Tue, 16 Aug 2022 11:08:11 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 4D6D240A79 for ; Tue, 16 Aug 2022 11:08:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1660640889; x=1692176889; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=imADPT0V0pl0TTX19Uw80kH0b+UjqUESy8e93SfqZMM=; b=UEB4PxSrkt2km8UdA9yx5ORjv7AgXxHbnUMXKby1SB85mjkA2CaGX8ja Zb3nO8Wp1eqqFA/RXvU/l+WBCLaDg7iOsMg6gIkvVS888wxZtvGc+YfUO ecWaW/bO5jd0tFhmvwanr54WglZMoG1tIGePh/YVnIEBcfAvPLW64fj6o ss5svvdebmPfg0+2kTrmO6TCdpAQew5jsgOqbnSOdFVMyEBz2JGmAF2mq W/MZnFdBIh3Y54yAJ1uqn3lZP/gPCVA9P6490FDaqDMjjBs0+psoKyaz2 WtYu6R3Sn6Gz+aVB5REOK9kFPj9OCgVuH7KzTYmflSUvlS+otIr6CV6gX w==; X-IronPort-AV: E=McAfee;i="6400,9594,10440"; a="272561053" X-IronPort-AV: E=Sophos;i="5.93,240,1654585200"; d="scan'208,223";a="272561053" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Aug 2022 02:08:08 -0700 X-IronPort-AV: E=Sophos;i="5.93,240,1654585200"; d="scan'208,223";a="635814152" Received: from unknown (HELO localhost.localdomain) ([10.239.252.222]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Aug 2022 02:08:07 -0700 From: Wei Ling To: dts@dpdk.org Cc: Wei Ling Subject: [dts][PATCH V5 1/2] test_plans/vhost_virtio_user_interrupt_cbdma_test_plan: modify testplan to test virtio dequeue Date: Tue, 16 Aug 2022 05:03:58 -0400 Message-Id: <20220816090358.3421422-1-weix.ling@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org From DPDK-22.07, virtio support async dequeue for split and packed ring path, so modify virtio_user_interrupt_cbdma testplan to test the split and packed ring async dequeue feature. Signed-off-by: Wei Ling --- ..._virtio_user_interrupt_cbdma_test_plan.rst | 89 ++++++++++++++----- 1 file changed, 68 insertions(+), 21 deletions(-) diff --git a/test_plans/vhost_virtio_user_interrupt_cbdma_test_plan.rst b/test_plans/vhost_virtio_user_interrupt_cbdma_test_plan.rst index c823f98e..3b74a152 100644 --- a/test_plans/vhost_virtio_user_interrupt_cbdma_test_plan.rst +++ b/test_plans/vhost_virtio_user_interrupt_cbdma_test_plan.rst @@ -5,19 +5,61 @@ vhost/virtio-user interrupt mode with cbdma test plan ===================================================== +Description +=========== + Virtio-user interrupt need test with l3fwd-power sample, small packets send from traffic generator to virtio side, check virtio-user cores can be wakeup status, and virtio-user cores should be sleep -status after stop sending packets from traffic generator when CBDMA enabled.This test plan cover -vhost-user as the backend. +status after stop sending packets from traffic generator. +This test plan tests virtio-user Rx interrupt and LSC interrupt with vhost-user as the backend when cbdma enable. + +..Note: + +DPDK local patch that about vhost pmd is needed when testing Vhost asynchronous data path with testpmd. + +Prerequisites +============= + +Software +-------- + Trex:http://trex-tgn.cisco.com/trex/release/v2.26.tar.gz + +General set up +-------------- +1. Compile DPDK:: + + # CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib -Dexamples=all --default-library=static + # ninja -C -j 110 + For example: + CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib -Dexamples=all --default-library=static x86_64-native-linuxapp-gcc + ninja -C x86_64-native-linuxapp-gcc -j 110 -Test Case1: LSC event between vhost-user and virtio-user with split ring and cbdma enabled -========================================================================================== +2. Get the PCI device ID and DMA device ID of DUT, for example, 0000:18:00.0 is PCI device ID, 0000:00:04.0, 0000:00:04.1 is DMA device ID:: -flow: Vhost <--> Virtio + # ./usertools/dpdk-devbind.py -s + + Network devices using kernel driver + =================================== + 0000:18:00.0 'Device 159b' if=ens785f0 drv=ice unused=vfio-pci + + DMA devices using kernel driver + =============================== + 0000:00:04.0 'Sky Lake-E CBDMA Registers 2021' drv=ioatdma unused=vfio-pci + 0000:00:04.1 'Sky Lake-E CBDMA Registers 2021' drv=ioatdma unused=vfio-pci + +Test case +========= + +Test Case1: Split ring LSC event between vhost-user and virtio-user with cbdma enable +------------------------------------------------------------------------------------- +This case tests the LSC interrupt of split ring virtio-user with vhost-user as the back-end +when vhost uses the asynchronous operations with CBDMA channels. +Flow: Vhost <--> Virtio 1. Bind 1 CBDMA channel to vfio-pci driver, then start vhost-user side:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x3000 -n 4 -a 00:04.0 --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0@00:04.0]' -- -i + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x3000 -n 4 -a 00:04.0 --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0;rxq0]' \ + -- -i --lcore-dma=[lcore13@0000:00:04.0] testpmd> set fwd mac testpmd> start @@ -37,20 +79,21 @@ flow: Vhost <--> Virtio testpmd> show port info 0 #it should show "down" -Test Case2: Split ring virtio-user interrupt test with vhost-user as backend and cbdma enabled -============================================================================================== - -flow: TG --> NIC --> Vhost --> Virtio +Test Case2: Split ring virtio-user interrupt test with vhost-user as backend and cbdma enable +--------------------------------------------------------------------------------------------- +This case tests Rx interrupt of split ring virtio-user with vhost-user as the back-end when vhost uses the asynchronous operations with CBDMA channels. +Flow: TG --> NIC --> Vhost --> Virtio 1. Bind 1 CBDMA channel and 1 NIC port to vfio-pci, launch testpmd with a virtual vhost device as backend:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x7c -n 4 --vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0@00:04.0]' -- -i --rxq=1 --txq=1 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x7c -n 4 --vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0;rxq0]' \ + -- -i --rxq=1 --txq=1 --lcore-dma=[lcore3@0000:00:04.0,lcore3@0000:00:04.1] testpmd> start 2. Start l3fwd-power with a virtio-user device:: ./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power -c 0xc000 -n 4 --log-level='user1,7' --no-pci --file-prefix=l3fwd-pwd \ - --vdev=virtio_user0,path=./vhost-net -- -p 1 --config="(0,0,14)" --parse-ptype + --vdev=virtio_user0,path=./vhost-net -- -p 1 --config="(0,0,14)" --parse-ptype --interrupt-only 3. Send packets with packet generator, check the virtio-user related core can be wakeup status. @@ -58,14 +101,16 @@ flow: TG --> NIC --> Vhost --> Virtio 5. Restart sending packets with packet generator, check virtio-user related core change to wakeup status again. -Test Case3: LSC event between vhost-user and virtio-user with packed ring and cbdma enabled -=========================================================================================== - -flow: Vhost <--> Virtio +Test Case3: Packed ring LSC event between vhost-user and virtio-user with cbdma enable +-------------------------------------------------------------------------------------- +This case tests the LSC interrupt of packed ring virtio-user with vhost-user as the back-end +when vhost uses the asynchronous operations with CBDMA channels. +Flow: Vhost <--> Virtio 1. Bind one cbdma port to vfio-pci driver, then start vhost-user side:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x3000 -n 4 -a 00:04.0 --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0@00:04.0]' -- -i + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x3000 -n 4 -a 00:04.0 --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0;rxq0]' \ + -- -i --lcore-dma=[lcore13@0000:00:04.0,lcore13@0000:00:04.1] testpmd> set fwd mac testpmd> start @@ -85,20 +130,22 @@ flow: Vhost <--> Virtio testpmd> show port info 0 #it should show "down" -Test Case4: Packed ring virtio-user interrupt test with vhost-user as backend and cbdma enabled -================================================================================================ +Test Case4: Packed ring virtio-user interrupt test with vhost-user as backend and cbdma enable +---------------------------------------------------------------------------------------------- +This case tests Rx interrupt of packed ring virtio-user with vhost-user as the back-end when vhost uses the asynchronous operations with CBDMA channels. flow: TG --> NIC --> Vhost --> Virtio 1. Bind one cbdma port and one NIC port to vfio-pci, launch testpmd with a virtual vhost device as backend:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x7c -n 4 --vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0@00:04.0]' -- -i --rxq=1 --txq=1 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x7c -n 4 --vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0;rxq0]' \ + -- -i --rxq=1 --txq=1 --lcore-dma=[lcore3@0000:00:04.0] testpmd> start 2. Start l3fwd-power with a virtio-user device:: ./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power -c 0xc000 -n 4 --log-level='user1,7' --no-pci --file-prefix=l3fwd-pwd \ - --vdev=virtio_user0,path=./vhost-net,packed_vq=1 -- -p 1 --config="(0,0,14)" --parse-ptype + --vdev=virtio_user0,path=./vhost-net,packed_vq=1 -- -p 1 --config="(0,0,14)" --parse-ptype --interrupt-only 3. Send packets with packet generator, check the virtio-user related core can be wakeup status. From patchwork Tue Aug 16 09:04:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ling, WeiX" X-Patchwork-Id: 115167 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 50E36A00C3; Tue, 16 Aug 2022 11:08:22 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4C22C40694; Tue, 16 Aug 2022 11:08:22 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 0D59640150 for ; Tue, 16 Aug 2022 11:08:19 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1660640900; x=1692176900; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=AvbgEBy3PRN+7uZrQiBy+G1N/fFxfr+M7I80IUHgsGk=; b=IcCW1yl+4B6vYfHaERx6sCilXgAO6YTDJ6/ZM0PGBOR6PDYWUcI+QlfV zumFa8TWWv8jXpuGQbmtab0MSwMB6+VjMK7+WhM4W0lj7Gn07rXrpGl2y UzzaDvVlALoEiVtjJJkPSDoJuhTRtANl9T2ryNMHwUIdp7XmMlutEYfw5 eAkmtltwPpjKlaKvk7HrvknqwScUbGBdB2UP5H/W6CULk9uietMdU43w2 ZXE9orl6MTzDMK0ZMZforD+f18cO4ZN1HdIgjYuMzfoG5jBJ+ggCeXbqV cvtWbLgWTzjO846zZyViqOqGjcRLGjQgU5hyubo/k5H2hsMeBqmWoqthh g==; X-IronPort-AV: E=McAfee;i="6400,9594,10440"; a="378458953" X-IronPort-AV: E=Sophos;i="5.93,240,1654585200"; d="scan'208,223";a="378458953" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Aug 2022 02:08:19 -0700 X-IronPort-AV: E=Sophos;i="5.93,240,1654585200"; d="scan'208,223";a="635814188" Received: from unknown (HELO localhost.localdomain) ([10.239.252.222]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Aug 2022 02:08:17 -0700 From: Wei Ling To: dts@dpdk.org Cc: Wei Ling Subject: [dts][PATCH V5 2/2] tests/vhost_virtio_user_interrupt_cbdma: modify testsuite to test virtio dequeue Date: Tue, 16 Aug 2022 05:04:08 -0400 Message-Id: <20220816090408.3421482-1-weix.ling@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org From DPDK-22.07, virtio support async dequeue for split and packed ring path, so modify vhost_virtio_user_interrupt_cbdma testsuite to test the split and packed ring async dequeue feature. Signed-off-by: Wei Ling Acked-by: Xingguang He Tested-by: Chenyu Huang Acked-by: Lijuan Tu --- ...Suite_vhost_virtio_user_interrupt_cbdma.py | 101 ++++++++++-------- 1 file changed, 54 insertions(+), 47 deletions(-) diff --git a/tests/TestSuite_vhost_virtio_user_interrupt_cbdma.py b/tests/TestSuite_vhost_virtio_user_interrupt_cbdma.py index a89ae5d7..e3dc51a9 100644 --- a/tests/TestSuite_vhost_virtio_user_interrupt_cbdma.py +++ b/tests/TestSuite_vhost_virtio_user_interrupt_cbdma.py @@ -31,11 +31,11 @@ class TestVirtioUserInterruptCbdma(TestCase): self.core_list = self.dut.get_core_list( self.core_config, socket=self.ports_socket ) - self.core_list_vhost = self.core_list[0:2] - self.core_list_l3fwd = self.core_list[2:4] - self.core_mask_vhost = utils.create_mask(self.core_list_vhost) - self.core_mask_l3fwd = utils.create_mask(self.core_list_l3fwd) - self.core_mask_virtio = self.core_mask_l3fwd + self.vhost_core_list = self.core_list[0:2] + self.l3fwd_core_list = self.core_list[2:4] + self.core_mask_vhost = utils.create_mask(self.vhost_core_list) + self.l3fwd_core_mask = utils.create_mask(self.l3fwd_core_list) + self.virtio_core_mask = self.l3fwd_core_mask self.pci_info = self.dut.ports_info[0]["pci"] self.cbdma_dev_infos = [] self.dmas_info = None @@ -78,14 +78,14 @@ class TestVirtioUserInterruptCbdma(TestCase): return True if out == "2048" else False def launch_l3fwd(self, path, packed=False): - self.core_interrupt = self.core_list_l3fwd[0] + self.core_interrupt = self.l3fwd_core_list[0] example_para = "./%s " % self.app_l3fwd_power_path if not packed: vdev = "virtio_user0,path=%s,cq=1" % path else: vdev = "virtio_user0,path=%s,cq=1,packed_vq=1" % path eal_params = self.dut.create_eal_parameters( - cores=self.core_list_l3fwd, prefix="l3fwd-pwd", no_pci=True, vdevs=[vdev] + cores=self.l3fwd_core_list, prefix="l3fwd-pwd", no_pci=True, vdevs=[vdev] ) if self.check_2M_env: eal_params += " --single-file-segments" @@ -102,16 +102,13 @@ class TestVirtioUserInterruptCbdma(TestCase): else: self.logger.info("Launch l3fwd-power sample finished") - def check_interrupt_log(self, status): - out = self.l3fwd.get_session_before() - self.logger.info(out) + def check_interrupt_log(self, status, out): if status == "waked up": info = "lcore %s is waked up from rx interrupt on port 0 queue 0" elif status == "sleeps": info = "lcore %s sleeps until interrupt triggers" info = info % self.core_interrupt self.verify(info in out, "The CPU status not right for %s" % info) - self.logger.info(info) def check_virtio_side_link_status(self, status): out = self.virtio_pmd.execute_cmd("show port info 0") @@ -171,21 +168,21 @@ class TestVirtioUserInterruptCbdma(TestCase): 60, ) - def test_lsc_event_between_vhost_user_and_virtio_user_with_split_ring_and_cbdma_enabled( + def test_split_ring_lsc_event_between_vhost_user_and_virtio_user_with_cbdma_enable( self, ): """ - Test Case1: LSC event between vhost-user and virtio-user with split ring and cbdma enabled + Test Case1: Split ring LSC event between vhost-user and virtio-user with cbdma enable """ - self.get_cbdma_ports_info_and_bind_to_dpdk(1) - lcore_dma = "[lcore{}@{}]".format(self.core_list_vhost[1], self.cbdma_list[0]) - vhost_param = "--lcore-dma={}".format(lcore_dma) + self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=1) + lcore_dma = "lcore%s@%s" % (self.vhost_core_list[1], self.cbdma_list[0]) + vhost_param = "--lcore-dma=[%s]" % lcore_dma vhost_eal_param = ( - "--vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0]'" + "--vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0;rxq0]'" ) ports = self.cbdma_list self.vhost_pmd.start_testpmd( - cores=self.core_list_vhost, + cores=self.vhost_core_list, ports=ports, prefix="vhost", eal_param=vhost_eal_param, @@ -198,7 +195,7 @@ class TestVirtioUserInterruptCbdma(TestCase): "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net" ) self.virtio_pmd.start_testpmd( - cores=self.core_list_l3fwd, + cores=self.l3fwd_core_list, no_pci=True, prefix="virtio", eal_param=virtio_eal_param, @@ -210,26 +207,28 @@ class TestVirtioUserInterruptCbdma(TestCase): self.vhost_pmd.quit() self.check_virtio_side_link_status("down") - def test_split_ring_virtio_user_interrupt_test_with_vhost_user_as_backend_and_cbdma_enabled( + def test_split_ring_virtio_user_interrupt_test_with_vhost_user_as_backend_and_cbdma_enable( self, ): """ - Test Case2: Split ring virtio-user interrupt test with vhost-user as backend and cbdma enabled + Test Case2: Split ring virtio-user interrupt test with vhost-user as backend and cbdma enable """ - self.get_cbdma_ports_info_and_bind_to_dpdk(2) - lcore_dma = "[lcore{}@{},lcore{}@{}]".format( - self.core_list_vhost[1], + self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=2) + lcore_dma = "lcore%s@%s,lcore%s@%s" % ( + self.vhost_core_list[1], self.cbdma_list[0], - self.core_list_vhost[1], + self.vhost_core_list[1], self.cbdma_list[1], ) - vhost_param = "--rxq=1 --txq=1 --lcore-dma={}".format(lcore_dma) - vhost_eal_param = "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0]'" + vhost_param = "--rxq=1 --txq=1 --lcore-dma=[%s]" % lcore_dma + vhost_eal_param = ( + "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0;rxq0]'" + ) ports = self.cbdma_list ports.append(self.dut.ports_info[0]["pci"]) self.logger.info(ports) self.vhost_pmd.start_testpmd( - cores=self.core_list_vhost, + cores=self.vhost_core_list, ports=ports, prefix="vhost", eal_param=vhost_eal_param, @@ -247,23 +246,26 @@ class TestVirtioUserInterruptCbdma(TestCase): ) self.tester.scapy_execute() time.sleep(3) - self.check_interrupt_log(status="waked up") + out = self.l3fwd.get_session_before() + self.logger.info(out) + self.check_interrupt_log(status="waked up", out=out) + self.check_interrupt_log(status="sleeps", out=out) - def test_lsc_event_between_vhost_user_and_virtio_user_with_packed_ring_and_cbdma_enabled( + def test_packed_ring_lsc_event_between_vhost_user_and_virtio_user_with_cbdma_enable( self, ): """ - Test Case3: LSC event between vhost-user and virtio-user with packed ring and cbdma enabled + Test Case3: Packed ring LSC event between vhost-user and virtio-user with cbdma enable """ - self.get_cbdma_ports_info_and_bind_to_dpdk(1) - lcore_dma = "[lcore{}@{}]".format(self.core_list_vhost[1], self.cbdma_list[0]) - vhost_param = "--lcore-dma={}".format(lcore_dma) + self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=1) + lcore_dma = "lcore%s@%s" % (self.vhost_core_list[1], self.cbdma_list[0]) + vhost_param = "--lcore-dma=[%s]" % lcore_dma vhost_eal_param = ( - "--vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0]'" + "--vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0;rxq0]'" ) ports = self.cbdma_list self.vhost_pmd.start_testpmd( - cores=self.core_list_vhost, + cores=self.vhost_core_list, ports=ports, prefix="vhost", eal_param=vhost_eal_param, @@ -276,7 +278,7 @@ class TestVirtioUserInterruptCbdma(TestCase): "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,packed_vq=1" ) self.virtio_pmd.start_testpmd( - cores=self.core_list_l3fwd, + cores=self.l3fwd_core_list, no_pci=True, prefix="virtio", eal_param=virtio_eal_param, @@ -288,25 +290,27 @@ class TestVirtioUserInterruptCbdma(TestCase): self.vhost_pmd.quit() self.check_virtio_side_link_status("down") - def test_packed_ring_virtio_user_interrupt_test_with_vhost_user_as_backend_and_cbdma_enabled( + def test_packed_ring_virtio_user_interrupt_test_with_vhost_user_as_backend_and_cbdma_enable( self, ): """ - Test Case4: Packed ring virtio-user interrupt test with vhost-user as backend and cbdma enabled + Test Case4: Packed ring virtio-user interrupt test with vhost-user as backend and cbdma enable """ - self.get_cbdma_ports_info_and_bind_to_dpdk(2) - lcore_dma = "[lcore{}@{},lcore{}@{}]".format( - self.core_list_vhost[1], + self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=2) + lcore_dma = "lcore%s@%s,lcore%s@%s" % ( + self.vhost_core_list[1], self.cbdma_list[0], - self.core_list_vhost[1], + self.vhost_core_list[1], self.cbdma_list[1], ) - vhost_param = "--rxq=1 --txq=1 --lcore-dma={}".format(lcore_dma) - vhost_eal_param = "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0]'" + vhost_param = "--rxq=1 --txq=1 --lcore-dma=[%s]" % lcore_dma + vhost_eal_param = ( + "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0;rxq0]'" + ) ports = self.cbdma_list ports.append(self.dut.ports_info[0]["pci"]) self.vhost_pmd.start_testpmd( - cores=self.core_list_vhost, + cores=self.vhost_core_list, ports=ports, prefix="vhost", eal_param=vhost_eal_param, @@ -324,7 +328,10 @@ class TestVirtioUserInterruptCbdma(TestCase): ) self.tester.scapy_execute() time.sleep(3) - self.check_interrupt_log(status="waked up") + out = self.l3fwd.get_session_before() + self.logger.info(out) + self.check_interrupt_log(status="waked up", out=out) + self.check_interrupt_log(status="sleeps", out=out) def tear_down(self): """