From patchwork Mon Aug 1 09:13:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ling, WeiX" X-Patchwork-Id: 114482 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 19204A00C3; Mon, 1 Aug 2022 11:19:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 142C942C79; Mon, 1 Aug 2022 11:19:11 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 69D3F4067B for ; Mon, 1 Aug 2022 11:19: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=1659345549; x=1690881549; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=s/hgdh5HhZ9jbOimnStAe3bLaMei6vJl6XTg1vuWX+M=; b=U5/efmvYRkUkQFdndIjCQQxznv4W1z65v794ARWRkehVdZsZjk9TyW3B QVlei1RktDyuO3lIJgEuMVwBuJrck/FjCS69Ap9adKmlUIyXiuMIkshys djlKLe5FqgK4XNwmwrAx/P02vSkRvL3y0te5yiwfGGjsNImp/uP5Qgf9e MEO+U3DcfR93ZJaFBCqQ4JB7JGVf3Y4/ZvMmcoPdifCrIHdxaDwsmt+Yl y9M5b3Nr5jS5cqH/91bKCDoXkIx1cIM0Tyt/hPsP0NorzBZG1FRB2wthd tizj/bKl0EDme5JRBkgiR3PXAbSsVJdj/mt8dysmt4QJWips3f/GeJ/d+ Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10425"; a="289114946" X-IronPort-AV: E=Sophos;i="5.93,206,1654585200"; d="scan'208,223";a="289114946" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2022 02:18:54 -0700 X-IronPort-AV: E=Sophos;i="5.93,206,1654585200"; d="scan'208,223";a="630166303" Received: from unknown (HELO localhost.localdomain) ([10.239.252.222]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2022 02:18:52 -0700 From: Wei Ling To: dts@dpdk.org Cc: Wei Ling Subject: [dts][PATCH V1 2/2] tests/:dpdk_gro_lib_cbdma: modify testsuite to test virito dequeue Date: Mon, 1 Aug 2022 05:13:29 -0400 Message-Id: <20220801091329.1077355-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 dpdk_gro_lib_cbdma testsuite to test the split and packed ring async dequeue feature. Signed-off-by: Wei Ling --- tests/TestSuite_dpdk_gro_lib_cbdma.py | 81 ++++++++++++++++++++------- 1 file changed, 62 insertions(+), 19 deletions(-) diff --git a/tests/TestSuite_dpdk_gro_lib_cbdma.py b/tests/TestSuite_dpdk_gro_lib_cbdma.py index 27d1ed17..ecfd132d 100644 --- a/tests/TestSuite_dpdk_gro_lib_cbdma.py +++ b/tests/TestSuite_dpdk_gro_lib_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. @@ -43,9 +68,9 @@ class TestDPDKGROLibCbdma(TestCase): ) self.path = self.dut.apps_name["test-pmd"] self.testpmd_name = self.path.split("/")[-1] - cores_list = self.dut.get_core_list(config="all", socket=self.ports_socket) - self.vhost_list = cores_list[0:3] - self.qemu_cpupin = cores_list[3:4][0] + self.cores_list = self.dut.get_core_list(config="all", socket=self.ports_socket) + self.vhost_core_list = self.cores_list[0:3] + self.qemu_cpupin = self.cores_list[3:4][0] # Set the params for VM self.virtio_ip1 = "1.1.1.2" @@ -175,6 +200,7 @@ class TestDPDKGROLibCbdma(TestCase): raise Exception("Set up VM ENV failed") except Exception as e: print((utils.RED("Failure for %s" % str(e)))) + self.vm1_dut.restore_interfaces() def iperf_result_verify(self, run_info): """ @@ -202,33 +228,49 @@ class TestDPDKGROLibCbdma(TestCase): iperfdata_kb = float(tmp_value) return iperfdata_kb - def check_dut_perf_top_info(self, check_string): - self.dut.send_expect("perf top", "# ") + def get_and_verify_func_name_of_perf_top(self, func_name_list): + self.dut.send_expect("rm -fr perf_top.log", "# ", 120) + self.dut.send_expect("perf top > perf_top.log", "", 120) + time.sleep(10) + self.dut.send_expect("^C", "#") + out = self.dut.send_expect("cat perf_top.log", "# ", 120) + self.logger.info(out) + for func_name in func_name_list: + self.verify( + func_name in out, + "the func_name {} is not in the perf top output".format(func_name), + ) def test_vhost_gro_tcp_ipv4_with_cbdma_enable(self): """ - Test Case1: DPDK GRO test with two queues and two CBDMA channels using tcp/ipv4 traffic + Test Case1: DPDK GRO test with two queues and cbdma channels using tcp/ipv4 traffic """ self.config_kernel_nic_host() self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=2) - lcore_dma = "[lcore{}@{},lcore{}@{},lcore{}@{}]".format( - self.vhost_list[1], - self.cbdma_list[0], - self.vhost_list[1], - self.cbdma_list[1], - self.vhost_list[2], - self.cbdma_list[1], + lcore_dma = ( + "lcore%s@%s," + "lcore%s@%s," + "lcore%s@%s," + % ( + self.vhost_core_list[1], + self.cbdma_list[0], + self.vhost_core_list[1], + self.cbdma_list[1], + self.vhost_core_list[2], + self.cbdma_list[1], + ) ) param = ( - "--txd=1024 --rxd=1024 --txq=2 --rxq=2 --nb-cores=2 --lcore-dma={}".format( - lcore_dma - ) + "--txd=1024 --rxd=1024 --txq=2 --rxq=2 --nb-cores=2 --lcore-dma=[%s]" + % lcore_dma + ) + eal_param = ( + "--vdev 'net_vhost0,iface=vhost-net,queues=2,dmas=[txq0;txq1;rxq0;rxq1]'" ) - eal_param = "--vdev 'net_vhost0,iface=vhost-net,queues=2,dmas=[txq0;txq1]'" ports = self.cbdma_list ports.append(self.pci) self.vhost_pmd.start_testpmd( - cores=self.vhost_list, + cores=self.vhost_core_list, ports=ports, prefix="vhost", eal_param=eal_param, @@ -253,8 +295,9 @@ class TestDPDKGROLibCbdma(TestCase): "", 180, ) + self.func_name_list = ["virtio_dev_rx_async", "virtio_dev_tx_async"] + self.get_and_verify_func_name_of_perf_top(self.func_name_list) time.sleep(30) - print(out) perfdata = self.iperf_result_verify("GRO lib") print(("the GRO lib %s " % (self.output_result))) self.quit_testpmd()