From patchwork Tue Aug 2 05:57:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ling, WeiX" X-Patchwork-Id: 114514 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 1BB57A0543; Tue, 2 Aug 2022 08:03:27 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1687042B74; Tue, 2 Aug 2022 08:03:27 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 12F7C400D7 for ; Tue, 2 Aug 2022 08:03:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1659420206; x=1690956206; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=QGEe6NHK+GQq+1O/MGdEG6udfDPtDMjwp8CwgpG5MvM=; b=E2byA87iiK69NOoq4y+q/HYubTlkZU3Tlmj/Us+jCh//5SIFPOzX2rl4 Hwl2dErLyKZ6i8XlA9JtTXoXkyBvpvnJOdbpYi6JlTj9GGGQBW7uwWTWn Q5ciO4iUjLm2ub2G5A9mjzsdSaab+hluRLI2Wl6l554MKL5IXO6DNf4GN DCuRG4K3QqOZy0n/w2o24jPd0pwHOHAtRoL5JTywy3Vox6duYknx2BouN wcw1k18ZdFF/P0eUg8C9xQlDtZscWdY7QraayPjMJw5Htdc58ul9Dvb1k W8FujDwVe0FpMDg+uwZEOMuPAUrAxuRsXbcSvqDVhAcW7DL3wdGN6AHQq A==; X-IronPort-AV: E=McAfee;i="6400,9594,10426"; a="315166918" X-IronPort-AV: E=Sophos;i="5.93,210,1654585200"; d="scan'208,223";a="315166918" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2022 23:03:25 -0700 X-IronPort-AV: E=Sophos;i="5.93,210,1654585200"; d="scan'208,223";a="552797399" Received: from unknown (HELO localhost.localdomain) ([10.239.252.222]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2022 23:03:23 -0700 From: Wei Ling To: dts@dpdk.org Cc: Wei Ling Subject: [dts][PATCH V2 2/2] tests/vhost_virtio_user_interrupt_cbdma: modify testsuite to test virtio dequeue Date: Tue, 2 Aug 2022 01:57:54 -0400 Message-Id: <20220802055754.1098691-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 --- ...Suite_vhost_virtio_user_interrupt_cbdma.py | 111 +++++++++++------- 1 file changed, 70 insertions(+), 41 deletions(-) diff --git a/tests/TestSuite_vhost_virtio_user_interrupt_cbdma.py b/tests/TestSuite_vhost_virtio_user_interrupt_cbdma.py index a89ae5d7..eb6cf864 100644 --- a/tests/TestSuite_vhost_virtio_user_interrupt_cbdma.py +++ b/tests/TestSuite_vhost_virtio_user_interrupt_cbdma.py @@ -1,6 +1,31 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2022 Intel Corporation # +# 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. @@ -31,11 +56,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 +103,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" @@ -171,21 +196,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 +223,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 +235,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, @@ -249,21 +276,21 @@ class TestVirtioUserInterruptCbdma(TestCase): time.sleep(3) self.check_interrupt_log(status="waked up") - 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 +303,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 +315,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,